0

我的问题标题不是最好的,但这是交易:

我有六段。其中三个包含文本,另外三个包含链接,如下所示:

<p>Text 1</><p>Link one</>
<p>Text 2</><p>Link two</>
<p>Text 3</><p>Link three</>

每个链接都会调用一个 jQuery 函数,该函数应该创建一个 HTML 输入元素而不是相应段落中的文本(例如:单击链接三应该在包含文本 3 的段落中创建文本输入元素)。

在第二次单击时,相同的链接应该创建一个带有一些参数的 AJAX 调用,我的 Django 视图将获取这些参数并采取相应的行动。

目前,我有这个:

$('.column a').click(function ()
{
    oldValue = $('#email').text()
    $('#email').html('<input type="text" value="'+oldValue+'"/>')
    $('a#changeMail').removeClass('button').addClass('success button')
});

它适用于一个段落对。我怎样才能使它适用于任何“段落对”?先感谢您。

4

1 回答 1

1

使用这种结构,这应该可以工作(这里有一个小提琴http://jsfiddle.net/uBZRW/2/

$('.column a').click(function ()
{
    var targetParaphaph = $(this).parent().prev(); // This gets the previous <p>
    var value = targetParaphaph.text();
    targetParaphaph.html("<input type='text' value='"+value+"'/>");
    $(this).addClass('success'); // this results in "button success" class
});

编辑:我编辑了原始答案,对代码进行了多次修复,小提琴包含一个工作示例,如果您的结构不同,您可以使用 jquery .parent(), .parents([selector]), .next() 实现类似的逻辑, .prev() 等

jQuery DOM 遍历:http ://api.jquery.com/category/traversing/

于 2013-03-22T16:30:19.110 回答