chrome - Javascript 动态创建与删除
高洛峰
高洛峰 2017-04-10 12:47:15
[JavaScript讨论组]
<ul>
   <li> content <button>Delete</button></li>
   <li> content <button>Delete</button></li>
   ...
</ul>

我想要做的是,动态增加 <li>content<button>Delete</button></li> ,然后点击 button 能够删除增加的 li ,看到很多的例子,都是对已经创建好的进行删除,这种动态创建的怎么删除呢?
PS:我现在是做一个简单的 Chrome extension, 他要求不能使用 onclick, 说明

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(4)
高洛峰

用事件监听就好了,给动态增加元素的父标签增加click的监听事件就可以对动态增加的元素进行点击回调操作了。我给个jQuery的示例吧(JavaScript是用addEventListener):

$('ul').on('click', 'button', function(e){
    $(this).parent().remove();
})

http://jsfiddle.net/mFdHm/

PHP中文网

可以把点击事件代理到公共父级元素上。 可以使用jquery的on, delegate来实现。
如果想使用原生的, 可以为父节点ul添加click事件, 在事件里面获得event, 通过event.target来获得点击的子元素。之后的操作就可以通过target节点来做了。

大家讲道理

其实jQuery完全支持访问动态创建的元素。但是你必须绑定一个listener在包含动态创建元素的容器上,并且这个容器不能是动态创建的。你可以试试这样做:

$('ul').on('click', 'li > button', function(){
    $(this).parent().remove();
});
阿神

典型的委托模式的应用场景,jQuery里面可以用on,live,delegate等函数来实现。可以参考 http://www.css88.com/jqapi-1.9/ 的函数参考来进一步学习。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号