我理解反复引用$('#Counter')
是一个坏主意,因为你“每次都跳进DOM”。
但这样更好吗?
Counter = $('#Counter');
然后在循环中:
Counter.val()++
修改
更正上面的代码段,应该是:
Counter.val(Counter.val()+1);
或者那是做同样的事情吗?
答案 0 :(得分:6)
对于您描述的情况,最好在输入迭代语句之前将jQuery对象保存在变量中,重复使用此对象。它将阻止在每次迭代时遍历DOM树。此外,通过ID搜索可能不敏感,但按类名查询或使用复合选择器可能会充分降低性能。
var $Counter = $("#Counter");
for (...) {
$Counter.val(function(i, val) { return +val + 1; });
...
}
注意使用函数作为val()
的参数,在这种情况下更合理。