javascript - 添加和删​​除 jquery li 元素

标签 javascript jquery html append

我想添加 li 元素,它工作正常,但删除不适用于新元素。 我一开始有三个 li 元素,因此删除函数起作用。

通过我的“add”函数,我创建了具有相同类的 Li 元素,为什么它对新元素不起作用?

http://jsfiddle.net/3c96gduL

$(document).ready(function(){
    $("#add_li").click(function (){
        $("ol").append("<li>" + $("input").val() + "<a href=\"#\" class=\"remove\">X</a></li>");
    });
    $("#remove_li").click(function(){
        $("li:last").remove();
    });
    $(".remove").click(function(){
        $(this).parents('li').remove();
    });

    var log = $('.remove');
    console.log(log);
    console.log(jQuery);    

});

最佳答案

您需要使用event delegation用于将事件 append 到动态添加的 dom。

Event delegation allows us to attach a single event listener, to a parent element, that will fire for all descendants matching a selector, whether those descendants exist now or are added in the future.

$("ol").on('click','.remove',function(){
    $(this).parents('li').remove();
});

Working Demo

关于javascript - 添加和删​​除 jquery li 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28557402/

相关文章:

javascript - 使用 vanilla Javascript 将多个 Canvas 合并为一个(将其导出)

asp.net - 从回发的 URL 中删除#FragmentIdentifier

javascript - Selectpicker(引导选择)不起作用,显示禁用菜单?

JavaScript 事件 onblur 在 Firefox 中的 onfocus 之前触发

c# - 使用 AJAX 调用的 JavaScript 对话框不同步

javascript - 无法绑定(bind)窗口方法: "Invalid calling object"

javascript - 如何使用 jQuery 不只选择表中的特定元素?

javascript - 迁移现有的 RequireJS 应用程序以使用 Webpack

javascript - 为什么我的平滑滚动不流畅?

javascript - 在 Ajax.success 上调用另一个脚本的函数