2017-04-26 76 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

@@无法解决问题,很乐意帮忙 –