我在想如果我用jQuery html()方法重写div的html,那么所有“旧” DOM元素和所有侦听器都将从内存中删除了吗?
例如:
HTML:
<div id='aDiv'>
<div id='anANotherDiv'>An Another Div</div>
</div>
Javascript:
$('anANotherDiv').click(function(){
var b='An Another Div'
console.log(b);
});
$('#aDiv').html('<div id='oDiv'>This div override the another</div>');
$('#oDiv').click(function(){
var a='This div override the another';
console.log(a);
});
因此,当我覆盖旧的GC时,将删除旧的DOM元素和侦听器吗?
好的 !!让我们从这种方式开始。
这是您的HTML
<div id='aDiv'>
<div id='anANotherDiv'>An Another Div</div>
</div>
现在aDiv
只包含一个,div
因为它是孩子anANotherDiv
。现在,当您在控制台上进行此操作时
$("#adIV").html();
控制台输出将是
<div id='anANotherDiv'>An Another Div</div>
现在,当您在控制台上进行类似这样的操作时
$('#aDiv').html('<div id=\"oDiv\">This div override the another</div>');
控制台输出将仅
<div id="oDiv">This div override the another</div>
您实际上manipulating
完全是整个aDiv
结构。.html()
基本上changes
是HTML结构。所以,你需要确保你是否要彻底改变HTML
一个特定的结构,element
或者node
,或者你只需要append
或do some other stuffs
希望我对你清楚。
干杯!
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句