Javascript jquery中的.clone()和.remove()方法

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

我的任务是实现该功能,当我单击一个按钮时,它会添加一整行,这是由我通过.clone()方法实现的。现在我想删除这个。当我点击交叉按钮,然后只删除该行。如图所示:

当我点击交叉,然后删除该行。我的代码是:

$(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();
    });

})