更新时间:2023-11-05 21:29:28
描述:从DOM中移除匹配元素集合中的所有子节点。 >请仔细考虑 .data()
expandos和事件处理程序...通过仅删除DOM,您就会每次创建内存泄漏。
I looked at the jQuery
source code for the .empty()
function:
empty: function() {
for ( var i = 0, elem; (elem = this[i]) != null; i++ ) {
// Remove element nodes and prevent memory leaks
if ( elem.nodeType === 1 ) {
jQuery.cleanData( elem.getElementsByTagName("*") );
}
// Remove any remaining nodes
while ( elem.firstChild ) {
elem.removeChild( elem.firstChild );
}
}
Couldn't it be a lot simpler with just changing the innerHTML
to an empty string:
empty: function() {
for ( var i = 0, elem; (elem = this[i]) != null; i++ ) {
elem.innerHTML = "";
}
The empty
docs:
Description: Remove all child nodes of the set of matched elements from the DOM.
Just think about .data()
expandos and event handlers... By just removing the DOM, you would create memory leaks every time.