2017-04-26 73 views
1

爲什麼會發生這種情況?當我直接引用元素時,我得到了預期的結果。當我的元件分配給一個變量的結果始終是1當元素分配給變量時,jQuery長度返回1

當我寫這樣的結果的代碼是始終爲1:

$dynamicNode = $(".dynamic"); 
$deleteNode = $(".trash"); 

$deleteNode.click(function(){ 
    $count = $dynamicNode.length; 
    console.log($count); 
}); 

當我寫這樣的結果的代碼是實際具有類.dynamic的元素的數量。

$deleteNode = $(".trash"); 

$deleteNode.click(function(){ 
    $count = $(".dynamic").length; 
    console.log($count); 
}); 

回答

8

區別是由於定義變量的點。在第一個示例中,您會在頁面加載時獲取元素,因此在稍後的點擊事件中,length將始終保持不變。

在第二個示例中,您點擊該按鈕時會得到length,因此它始終處於DOM狀態的最新狀態。

+0

哦,上帝,這是一個明顯的錯誤,,,謝謝..我現在在這裏笑我自己。 – GRowing

+0

嘗試把$(document).ready(function(){如果它已經不是 – 1Canuck16

+1

@@無法解決問題,很樂意幫忙 –