当元素分配给变量时,jQuery长度返回1

时间:2017-04-26 13:27:07

标签: javascript 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);
});

1 个答案:

答案 0 :(得分:8)

差异是由于定义变量的点。在第一个示例中,您可以在页面加载时获取元素,因此length在以后的点击事件中始终是相同的。

在第二个示例中,您在单击按钮时获得length,因此它始终与DOM的状态保持同步。