jQuery empty()和text('')的区别

5

$(element).empty()$(element).text('') 之间有什么不同吗?

哪一个更好?


empty() 可以清除 HTML 和文本,而 text('') 只会清除文本。它们是两个不同的东西。因此这取决于你需要什么。 - Jeff Shaver
jQuery.fn.empty和jQuery.fn.html有什么区别? - codefreak
仅仅是猜测内部实现,清空某个变量应该比将其赋值为空字符串更快。这篇文章证明了我的假设。 - Benjamin Kaiser
1个回答

9

结果是一样的,但如果我们看一下jQuery text 方法的实现:

text: function (value) {
    return jQuery.access(this, function (value) {
        return value === undefined
            ? jQuery.text(this)
            : this.empty().append((this[0] && this[0].ownerDocument || document).createTextNode(value));
    }, null, value, arguments.length);
},

我们会发现$(element).text('');实际上会在内部使用.empty,所以后者速度稍快。
另外从语义角度来看,如果您想要清空某个节点,您一定应该使用.empty方法,而不是text

1
在我发布问题后主动阅读了代码...我真懒。 - Atif

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接