Jquery删除追加输入

时间:2013-06-21 14:06:13

标签: jquery

    $(document).ready(function() {
        var n=1;

        $("#add").click(function(){
            if(n<8){
            $("#form").append("
                <input type='text' name='input_" + (n++) +"'/>
                <input type='button' id='remove_" + (n++) +"' value='REMOVE'/>");
            }
        });     
    });

我有一个Jquery添加输入文本。

如何删除特定输入。

http://jsfiddle.net/JvW3L/

5 个答案:

答案 0 :(得分:5)

假设要点击具有'{1}}'deleteInput'的元素来触发删除:

id

以上操作只会删除添加的 last $('#deleteInput').click(function(e){ // in case it's an element with a default action: e.preventDefault(); $('#form input').last().remove(); n--; }); 元素,并递减input变量。

另一方面,如果要删除特定的n,而不是最后一个:

input

这假设具有$('.deleteInput').click(function(e){ e.preventDefault(); $(this).prev('input').remove(); }); 类的元素将紧跟deleteInput后移除。在这种情况下,我将按原样离开input,让你找到一些方法来重新使用空出/清空的'槽'来重新创建n(因为简单的减量会可能导致两个元素(无效地)共享相同的input

参考文献:

答案 1 :(得分:1)

试试这个:

$("#form").on("click", "input[id^='remove_']", function () {
    $(this).prev(':text').remove();
    $(this).remove();
    n--;
});

由于inputs是动态添加的,因此您需要使用event delegation来注册事件处理程序。 WORKING FIDDLE

答案 2 :(得分:1)

像这样使用你的按钮类 -

$("#form").append("<input type='text' name='input_" + (n++) +"'/><input type='button' class='remove' value='REMOVE'/>");

删除输入和按钮 -

$('form').on('click','.remove',function(){
   $(this).prev('input').remove();
   $(this).remove();
   n--;
});

演示----> http://jsfiddle.net/JvW3L/4/

答案 3 :(得分:0)

这个怎么样:

$("#remove_").remove();

(假设您要使用id='remove_'删除第二个输入)

答案 4 :(得分:0)

您必须使用jquery选择器选择元素。选择它之后,您可以执行各种操作,其中之一就是删除它。

您可以按名称,属性,类型,它在DOM或ID中的位置选择元素。

在你的情况下,最简单的是输入id“input_3”:

$("#input_3").remove();