快取選擇器

每次在 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();