缓存选择器
每次在 jQuery 中使用选择器时,都会搜索 DOM 以查找与查询匹配的元素。过于频繁或反复这样做会降低性能。如果你多次引用特定选择器,则应将其添加到缓存中,方法是将其分配给变量:
var nav = $('#navigation');
nav.show();
这将取代:
$('#navigation').show();
如果你的网站需要经常显示/隐藏此元素,则缓存此选择器可能会有所帮助。如果有多个元素具有相同的选择器,则变量将成为这些元素的数组:
<div class="parent">
<div class="child">Child 1</div>
<div class="child">Child 2</div>
</div>
<script>
var children = $('.child');
var firstChildText = children[0].text();
console.log(firstChildText);
// output: "Child 1"
</script>
注意: 元素在分配给变量时必须存在于 DOM 中。如果 DOM 中没有带有名为 child
的类的元素,那么你将在该变量中存储一个空数组。
<div class="parent"></div>
<script>
var parent = $('.parent');
var children = $('.child');
console.log(children);
// output: []
parent.append('<div class="child">Child 1</div>');
children = $('.child');
console.log(children[0].text());
// output: "Child 1"
</script>
在使用该选择器添加/删除 DOM 中的元素后,请记住将选择器重新分配给变量。
注意 :当缓存选择器时,许多开发人员将使用 $
启动变量名称,以表示该变量是一个 jQuery 对象,如下所示:
var $nav = $('#navigation');
$nav.show();