是否有一种简单的方法可以在点击.box
上克隆整个button-add
元素,然后将其追加
我还需要button-remove
才能删除该框吗?
<input class="button-add" type="button" value="Clone box">
<div class="form-group box">
<div class="col-lg-7">
<p>Article</p>
<select class="form-control" name="article()">
<option value="">Smoki Coko Kokos</option>
<option value="8">Koka Kola</option>
<option value="10">Cipiripi</option>
</select>
</div>
<div class="col-lg-3">
<p>Quantity</p>
<input class="form-control" value="3" name="qty()" type="text">
</div>
<div class="col-lg-2">
<input class="button-remove" type="button" value="Delete box">
</div>
</div>
这就是我现在所拥有但不起作用的,
$(document).ready(function() {
$('.button-add').click(function(){
//we select the box clone it and insert it after the box
$('.box').clone().insertAfter(".box");
});
});
答案 0 :(得分:4)
$('.box').clone()
将在页面上使用类box
克隆每个元素。您应指定要克隆的框,以及要在最后一个框之后附加它的框:
$('.box:first').clone().insertAfter(".box:last");
此外,您可以使用event delegation来实现删除按钮:
$(document).on("click", ".button-remove", function() {
$(this).closest(".box").remove();
});
这些变化的小提琴在这里:http://jsfiddle.net/nbpyyuwu/
然而,这个小提琴可能不会做你想要的,因为如果你删除所有的盒子它将不再工作。我建议你创建一个隐藏的模板,你可以克隆并追加它(参见小提琴:http://jsfiddle.net/nbpyyuwu/1/)
答案 1 :(得分:0)
答案 2 :(得分:0)
需要将单击处理程序委派给静态祖先节点(例如document
),以便将单击功能(添加和删除)附加到克隆框。
我希望你想要这样的东西:
$(document).ready(function() {
$(document).on('click', '.button-add', function() {
$(this).clone().insertAfter(this);//or maybe .insertAfter('.box:last'), as per Ninsly's answer
}).on('click', '.button-remove', function() {
$(this).closest('.box').remove();
});
});
答案 3 :(得分:-1)
请使用demo检查此链接以添加删除div jquery Here is the JSFiddle link您也可以查看以下代码。
$(document).ready(function() {
var div_clone = null;
div_clone = $('.template').clone();
$('.button-add').click(function() {
//we select the box clone it and insert it after the box
var _elm = div_clone.clone();
_elm.find('.box-title').html('Other Address');
_elm.find("input[type='text']").val("");
_elm.find('.remove_btn').show();
_elm.appendTo('#clone_here');
})
$(document).on("click", ".remove_btn", function(e) {
var $e = $(e.currentTarget);
$e.closest('.template').remove();
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<input class="button-add" type="button" value="Clone box">
<div class="form-group box template">
<div class="col-lg-7">
<p>Article</p>
<select class="form-control" name="article()">
<option value="">Smoki Coko Kokos</option>
<option value="8">Koka Kola</option>
<option value="10">Cipiripi</option>
</select>
</div>
<div class="col-lg-3">
<p>Quantity</p>
<input class="form-control" value="3" name="qty()" type="text">
</div>
<div class="col-lg-2">
<input style="display:none;" class="remove_btn" type="button" value="Delete box">
</div>
</div>
<div id="clone_here">
</div>
&#13;