例如,第一段代码将执行两次完整搜索,或者如果没有发生DOM更改,是否足够聪明以缓存结果?
if ($("#navbar .heading").text() > "") {
$("#navbar .heading").hide();
}
和
var $heading = $("#navbar .heading");
if ($heading.text() > "") {
$heading.hide();
}
如果选择器更复杂,我可以想象这是一个不小的成功。
最佳答案
jQuery没有,但是有可能在表达式中分配给变量,然后在后续表达式中重用这些变量。因此,缓存您的示例...
if ((cached = $("#navbar .heading")).text() > "") {
cached.hide();
}
不足之处是它使代码更容易出错且难以理解。
关于jquery - jQuery是否对 “selectors”进行任何形式的缓存?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/291841/