单击鼠标中删除多个文本框

时间:2017-10-30 10:18:47

标签: javascript jquery html

使用j-query添加多个文本框

HTML

prime

这样的剧本
<div class="col-md-12">
<div class="col-md-3"><label>Name</label><input type="text" class="form-control" name=""/></div>
<div class="col-md-2"><label>Count</label><input type="text" class="form-control" name=""/></div>
<div class="col-md-3"><label>Brand</label><input type="text" class="form-control" name=""/></div>
<div class="col-md-3"><label>Condition</label><input type="text" class="form-control" name=""/></div>
<div class="col-md-1" style="margin-top:30px;"><a href="javascript:void(0);" class="add" ><span class="glyphicon glyphicon-plus"></span></a></div>
<div class="contents"></div>
</div>

以上查询用于添加多个正常工作的文本框,我尝试删除删除按钮中添加的项目,但只删除一个文本框我只使用此脚本

<script>
$(document).ready(function() {
$(".add").click(function() {
$('<div class="col-md-3"><input type="text" class="form-control" name=""/></div>').appendTo(".contents");
$('<div class="col-md-2"><input type="text" class="form-control" name=""/></div>').appendTo(".contents");
$('<div class="col-md-3"><input type="text" class="form-control" name=""/></div>').appendTo(".contents");
$('<div class="col-md-3"><input type="text" class="form-control" name=""/></div>').appendTo(".contents");
$('<div class="col-md-1"><span class="rem" ><a href="javascript:void(0);" >Remove</span></div>').appendTo(".contents");
});
});
</script>

是否只能删除点击的完整行? enter image description here

3 个答案:

答案 0 :(得分:3)

您可以像这样重写代码。您正在删除容器,这是问题

&#13;
&#13;
   

 $(document).ready(function() {
    $(".add").click(function() {
    var container= $('<div>');
    $('<div class="col-md-3"><input type="text" class="form-control" name=""/></div>').appendTo(container);
    $('<div class="col-md-2"><input type="text" class="form-control" name=""/></div>').appendTo(container);
    $('<div class="col-md-3"><input type="text" class="form-control" name=""/></div>').appendTo(container);
    $('<div class="col-md-3"><input type="text" class="form-control" name=""/></div>').appendTo(container);
    $('<div class="col-md-1"><span class="rem" ><a href="javascript:void(0);" >Remove</span></div>').appendTo(container);
    $('.childControl').after($(container).clone());
    });
    $('.contents').on('click', '.rem', function() {
    $(this).parent("div").parent("div").empty();
    });
    });
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="col-md-12">
<div class="col-md-3"><label>Name</label><input type="text" class="form-control" name=""/></div>
<div class="col-md-2"><label>Count</label><input type="text" class="form-control" name=""/></div>
<div class="col-md-3"><label>Brand</label><input type="text" class="form-control" name=""/></div>
<div class="col-md-3"><label>Condition</label><input type="text" class="form-control" name=""/></div>
<div class="col-md-1" style="margin-top:30px;"><a href="javascript:void(0);" class="add" ><span class="glyphicon glyphicon-plus"></span>Add</a></div>
<div class="contents"><div class="childControl"></div>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

父母应该是祖父母,请尝试以下代码

replace $(this).parent("div").remove(); 

$(this).parent().parent().remove();

所以最终的代码是:

<script>
$('.contents').on('click', '.rem', function() {
$(this).parent().parent().remove();
});
</script>

答案 2 :(得分:0)

更新回答:使用prevUntil()实现此目的:

&#13;
&#13;
$('.contents').on('click', '.rem', function() {
    $(this).parent().prevUntil(".col-md-1").remove();
    $(this).parent().remove();
});

$(document).ready(function() {
    $(".add").click(function() {
        $('<div class="col-md-3"><input type="text" class="form-control" name=""/></div>').appendTo(".contents");
        $('<div class="col-md-2"><input type="text" class="form-control" name=""/></div>').appendTo(".contents");
        $('<div class="col-md-3"><input type="text" class="form-control" name=""/></div>').appendTo(".contents");
        $('<div class="col-md-3"><input type="text" class="form-control" name=""/></div>').appendTo(".contents");
        $('<div class="col-md-1"><span class="rem" ><a href="javascript:void(0);" >Remove</span><hr></div>').appendTo(".contents");
    });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="col-md-12">
    <div class="col-md-3"><label>Name</label><input type="text" class="form-control" name="" /></div>
    <div class="col-md-2"><label>Count</label><input type="text" class="form-control" name="" /></div>
    <div class="col-md-3"><label>Brand</label><input type="text" class="form-control" name="" /></div>
    <div class="col-md-3"><label>Condition</label><input type="text" class="form-control" name="" /></div>
    <div class="col-md-1" style="margin-top:30px;">
        <a href="javascript:void(0);" class="add"><span class="glyphicon glyphicon-plus">Add this</span></a>
    </div>
    <div class="contents"></div>
</div>
&#13;
&#13;
&#13;