根据点击的元素动态创建输入元素

时间:2013-03-22 16:23:18

标签: jquery html django

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

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

<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')
});

它适用于一个段落对。如何让它适用于任何“段落对”?提前谢谢。

1 个答案:

答案 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/