【发布时间】:2010-09-22 10:53:17
【问题描述】:
例如,第一段代码是否会执行两次完整搜索,或者如果没有发生 DOM 更改,它是否足够聪明地缓存结果?
if ($("#navbar .heading").text() > "") {
$("#navbar .heading").hide();
}
和
var $heading = $("#navbar .heading");
if ($heading.text() > "") {
$heading.hide();
}
如果选择器更复杂,我可以想象这是一个不平凡的命中。
【问题讨论】:
-
在我看来,它应该缓存唯一的选择器,例如 ID。如果有一个允许缓存所有其他选择器的插件也很好。
-
jQuery 团队在这里指出了这一点。 learn.jquery.com/using-jquery-core/selecting-elements/…