Javascript jquery中的.clone()和.remove()方法
我的任务是实现该功能,当我单击一个按钮时,它会添加一整行,这是由我通过.clone()方法实现的。现在我想删除这个。当我点击交叉按钮,然后只删除该行。如图所示: 当我点击交叉,然后删除该行。我的代码是:Javascript jquery中的.clone()和.remove()方法,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我的任务是实现该功能,当我单击一个按钮时,它会添加一整行,这是由我通过.clone()方法实现的。现在我想删除这个。当我点击交叉按钮,然后只删除该行。如图所示: 当我点击交叉,然后删除该行。我的代码是: $(document).ready(function () { $("button#add").click(function(){ $(".abcd:last").clone().appendTo(".wrapper"); }); $(".glyphicon-remo
$(document).ready(function () {
$("button#add").click(function(){
$(".abcd:last").clone().appendTo(".wrapper");
});
$(".glyphicon-remove").click(function () {
$(".abcd:last").remove();
});
});
html:
整天
时间
:
.00
到
时间
:
.00
添加
去除
我可以通过单击“添加”按钮添加新行,但无法通过单击“交叉”隐藏该行
注意:仅删除选中“行交叉”按钮的行。首先,您需要将克隆更改为:
$(".abcd:last").clone(true).appendTo(".wrapper");
传递true意味着它也在克隆事件
然后,在remove函数中,需要使用this
关键字<代码>此将在单击按钮时显示。然后,您可以使用类似于“最近”的DOM遍历方法删除行:
$(".glyphicon-remove").click(function () {
$(this).closest(".abcd").remove();
});
或者,您可以将事件绑定到容器,如下所示:
$(document).ready(function () {
$("button#add").click(function () {
$(".abcd:last").clone().appendTo(".wrapper");
});
$(".wrapper").on('click', '.glyphicon-remove', function () {
$(".abcd:last").remove();
});
})
你当然可以,这是什么?为什么我们使用.clone(真的)?与答案中所说的.clone()不同,“传递true意味着它也在克隆事件。”如果不传递true,remove按钮将不会有任何处理程序。因此,它无法捕获单击事件。您可以使用事件委派(
.on()
),但我建议使用clone true,因为它速度更快@Karl AndréGagnon,我一直使用委派(.on())
,因此感谢您解释将true
传递给clone()
的用法。
$(document).ready(function () {
$("button#add").click(function () {
$(".abcd:last").clone().appendTo(".wrapper");
});
$(".wrapper").on('click', '.glyphicon-remove', function () {
$(".abcd:last").remove();
});
})