为什么jquery空函数如此复杂?

时间:2012-04-24 20:24:35

标签: javascript jquery html

我查看了jQuery函数的.empty()源代码:

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 );
            }
        }​

只需将innerHTML更改为空字符串就不会更简单:

empty: function() {
        for ( var i = 0, elem; (elem = this[i]) != null; i++ ) {
                elem.innerHTML = "";
        }​

empty docs

  

描述:从DOM中删除匹配元素集的所有子节点。

1 个答案:

答案 0 :(得分:11)

想想.data() expandos和事件处理程序......只需删除DOM,就会每次都创建内存泄漏。