Jquery Remove() 不删除选定的节点

标签 jquery append file-management

我正在制作一个简单的文件管理器,但我不知道我的代码有什么问题,我多次使用了 remove() 和/或 detach() jQuery 的函数,但这次它不会从网格的其余部分中删除选定的节点。

代码如下:

<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
<script>
$(document).ready(function(){
    $(".excluir").click(function(){
        $(this).remove();
    });

    $("#novo").click(function(){
        $("#gradearquivos").append("<div class=\"miniatura\"><button class=\"excluir\">X</button></div>");
    });
});
</script>

append() 工作正常,创建了文件缩略图,但 remove() 却不能! 这次我做错了什么? PS:jsFiddle

最佳答案

您需要使用event delegation ,因为按钮是动态创建的。元素在事件绑定(bind)时不存在。此外,您还需要选择 parent('.miniatura') 否则它只会删除关闭图标而不是 .miniatura div

<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
<script>
$(document).ready(function(){
    $("#gradearquivos").on('click',".excluir",function(){
        $(this).parent('.miniatura').remove();
    });

    $("#novo").click(function(){
        $("#gradearquivos").append("<div class=\"miniatura\"><button class=\"excluir\">X</button></div>");
    });
});
</script>

Fiddle Demo

关于Jquery Remove() 不删除选定的节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21620392/

相关文章:

javascript - 如何使用来自 localstorage 的 jquery 将项目 append 到 DOM?

python - 将列表或系列作为一行 append 到 pandas DataFrame?

c++ - 将常量 cstring append 到我自己的 String 类对象

google-apps-script - 为 Google Apps Script webapp 存储资源(图标、图像等)的优雅方式

bash - 如何删除没有具有不同扩展名的匹配文件的文件

.net - 当数百万个文件的元数据位于SQL数据库中时,存储/检索数百万个文件的最佳方法

jquery - 半六边形悬停效果

javascript - #raw javascript block 中的 Python cheetah 变量?

带有图像切换的两个 div 之间的 jQuery 滑动

jquery - 使用 jquery 选择具有最高 z-index 的元素