首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Jquery .html("")与.empty()

Jquery .html("")与.empty()
EN

Stack Overflow用户
提问于 2013-07-09 16:42:14
回答 3查看 26.6K关注 0票数 34

在Jquery中,

代码语言:javascript
复制
$('#divid').html("");

代码语言:javascript
复制
$('#divid').empty();

这两个都是在jQuery.js内部执行相同的操作吗?

哪一个更好用。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-07-09 16:45:59

I‘我不认为.empty()更快。This.empty()的jQuery源

代码语言:javascript
复制
empty: function() {
    var elem,
        i = 0;

    for ( ; ( elem = this[ i ] ) != null; i++ ) {
        if ( elem.nodeType === 1 ) {

            // Prevent memory leaks
            jQuery.cleanData( getAll( elem, false ) );

            // Remove any remaining nodes
            elem.textContent = "";
        }
    }

    return this;
}

this是jQuery .html("")的源代码:

代码语言:javascript
复制
html: function( value ) {
    return access( this, function( value ) {
        var elem = this[ 0 ] || {},
            i = 0,
            l = this.length;

        if ( value === undefined && elem.nodeType === 1 ) {
            return elem.innerHTML;
        }

        // See if we can take a shortcut and just use innerHTML
        if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
            !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) {

            value = jQuery.htmlPrefilter( value );

            try {
                for ( ; i < l; i++ ) {
                    elem = this[ i ] || {};

                    // Remove element nodes and prevent memory leaks
                    if ( elem.nodeType === 1 ) {
                        jQuery.cleanData( getAll( elem, false ) );
                        elem.innerHTML = value;
                    }
                }

                elem = 0;

            // If using innerHTML throws an exception, use the fallback method
            } catch ( e ) {}
        }

        if ( elem ) {
            this.empty().append( value );
        }
    }, null, value, arguments.length );
}

很明显,你可以选择你最好的。

票数 35
EN

Stack Overflow用户

发布于 2013-07-09 16:45:37

我在JSperf中尝试了以下方法,发现使用$(‘#divid’).empty()更好

票数 12
EN

Stack Overflow用户

发布于 2013-07-09 16:45:27

html函数的source code,以及其他许多内容:

代码语言:javascript
复制
        if ( elem ) {
            this.empty().append( value );
        }

所以html调用empty。因此,简单地调用empty (稍微)快一些。当然,它更具可读性。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17543711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档