2
    $(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/

4

5 回答 5

5

假设id要单击具有“deleteInput”的元素以触发删除:

$('#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以重新创建 (因为简单的递减可能会导致两个元素(无效)共享一样id

参考:

于 2013-06-21T14:08:50.737 回答
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/

于 2013-06-21T14:16:08.500 回答
1

尝试这个:

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

由于inputs是动态添加的,因此您需要使用事件委托来注册事件处理程序。 工作小提琴

于 2013-06-21T14:14:11.033 回答
0

这个怎么样:

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

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

于 2013-06-21T14:09:48.800 回答
0

您必须使用 jquery 选择器选择一个元素。选择它后,您可以做各种事情,其中​​之一就是删除它。

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

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

$("#input_3").remove();
于 2013-06-21T14:09:49.753 回答