创建自身副本的按钮

时间:2012-03-22 21:27:27

标签: javascript jquery html

我在文本框旁边有一个按钮,当我单击按钮时,我希望它在另一个文本框旁边创建另一个按钮。这段代码就是这样做的,但新按钮不起作用。

<div id="algorithm">
    <input type="button" id="add_child" value="+" />
    <input type="text" id="textbox0" />
</div>

$('#add_child').click(function() {
    $('<input type="button" id="add_child" value="+" />').appendTo('#algorithm');
    $('<input type="text" id="textbox0" />').appendTo('#algorithm');
}); 

2 个答案:

答案 0 :(得分:3)

我建议尝试这种方法:

$('#algorithm').on('click','input',function(){
    $(this).clone(true,true).insertAfter($(this));
});

JS Fiddle demo

修改上述代码以更新id属性,以便没有重复项:

$('#algorithm').on('click','input',function(){
    $(this).clone(true,true).attr('id','add_child' + $('input[type="button"]').length).insertAfter($(this));
});​

JS Fiddle demo

参考文献:

答案 1 :(得分:0)

您的代码存在许多问题。

首先;绑定不是活动的,因此您添加的任何新元素都不会获得相同的功能。

其次,你要创建具有相同ID的多个元素......大不了!

第三,因为你使用ID选择器它会停止寻找它找到第一个,但我确实有一个预感,如果你将绑定更改为$(),它将会起作用。实时(“点击”,功能(){})