jquery – 如果我覆盖html,是否从dom中删除了?

前端之家收集整理的这篇文章主要介绍了jquery – 如果我覆盖html,是否从dom中删除了?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
想象一下,我有以下代码
...
<div id="div1">
    <div id="div2">Original div2</div>
</div>

<div id="div3"></div>

...

如果我跑

$('#div1').html('');
$('#div3').html('<div id="div2">New div2</div>');

我最终会遇到问题,因为我没有使用.remove()从dom中删除#div2,或者以这种方式清除html对我这样做了吗?

如果div2包含一些附加了处理程序的javascript,比如说

$('#div2').on('click',function() { ... });

会被删除,还是我需要关闭()它?

解决方法

do I end up with problems because I didn’t use .remove() to remove #div2 from the dom,or does clearing the html in this way do that for me?

不,jQuery将在内部使用.remove(技术上它使用cleanData,但它执行相同的清理.)

事件将会丢失,因此您必须重新绑定它们.

猜你在找的jQuery相关文章