我的问题标题不是最好的,但这是交易:
我有六段。其中三个包含文本,其他三个包含链接,如下所示:
<p>Text 1</><p>Link one</>
<p>Text 2</><p>Link two</>
<p>Text 3</><p>Link three</>
每个链接都调用一个jQuery函数,它应该在相应的段落中创建一个HTML输入元素而不是文本(例如:单击Link three应该在包含Text 3的段落中创建文本输入元素)。
第二次点击时,相同的链接应该创建一个带有一些参数的AJAX调用,我的Django视图会选择这些参数,并采取相应的行动。
目前,我有这个:
$('.column a').click(function ()
{
oldValue = $('#email').text()
$('#email').html('<input type="text" value="'+oldValue+'"/>')
$('a#changeMail').removeClass('button').addClass('success button')
});
它适用于一个段落对。如何让它适用于任何“段落对”?提前谢谢。
答案 0 :(得分: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/