使用jQuery清空元素的最有效方法是什么

时间:2011-01-11 22:33:35

标签: jquery

所有这些都是这样做的,但最有效的方式是什么?

$(selector).html('');
$(selector).text('');
$(selector).children().remove();

2 个答案:

答案 0 :(得分:12)

请参阅http://api.jquery.com/empty

$(selector).empty();

这绝对是最明确的方式,而且几乎肯定是效率最高的。

因为它是jQuery-internal,所以它可能比.children().remove()更有效率,当然效率也不低。

我必须认为.html('').text('')效率较低,因为它们调用html解析器而不是像其他方法一样处理dom节点。即使它们碰巧效率更高,效率的任何提高都会轻易超过使用empty()的清晰度,除非你真的需要根据特定原因优化该部分(在这种情况下,我只是基准所有选项)。

答案 1 :(得分:3)

另外the answer来自@Ben Lee,如果您希望以最快的方式展示新内容,则可能需要考虑.detach()

var $elem = $(selector);
var $detached = $elem.children().detach();

$elem.html('new content');
$detached.remove();

这会延迟数据清理,直到显示新内容为止。我没有经过性能测试,但我很确定在删除大量内容时你会看到收益。