为什么jQuery的空功能如此复杂? [英] Why is the jquery empty function so complicated?
本文介绍了为什么jQuery的空功能如此复杂?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我查看了 .empty()
函数的 jQuery
源代码:
empty:function(){
for(var i = 0,elem;(elem = this [i])!= null; i ++ ){
//删除元素节点并防止内存泄漏
if(elem.nodeType === 1){
jQuery.cleanData(elem.getElementsByTagName(*));
}
//删除所有剩余的节点
while(elem.firstChild){
elem.removeChild(elem.firstChild);
$ / code $ / pre
难道这不是简单得多将 innerHTML
更改为一个空字符串:
empty:function() {
for(var i = 0,elem;(elem = this [i])!= null; i ++){
elem.innerHTML =;
空
:
<
解决方案描述:从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.
这篇关于为什么jQuery的空功能如此复杂?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文