2

我知道$('#Counter')一遍又一遍地引用是一个坏主意,因为您“每次都跳入 DOM”。

但这更好吗?

Counter = $('#Counter');

然后在循环内:

Counter.val()++

编辑:

更正上面的代码段,应该是:

Counter.val(Counter.val()+1);

还是在做同样的事情?

4

1 回答 1

6

对于您描述的情况,最好在进入迭代语句之前将 jQuery 对象保存在一个变量中,您可以在其中重复使用该对象。它将防止在每次迭代时遍历 DOM 树。此外,通过 ID 搜索可能是不明智的,但是通过类名或使用复合选择器进行查询可能会大大降低性能。

var $Counter = $("#Counter");
for (...) {
    $Counter.val(function(i, val) { return +val + 1; });
    ...
}

注意val()在这种情况下使用函数作为参数更合理。

于 2013-03-25T19:44:10.903 回答