如何使用jQuery对DOM元素执行重复的迭代操作?

时间:2017-03-07 17:26:23

标签: javascript jquery

我有以下情况:

var totalWidth = 0;
$('.myclass').each(function () {
  totalWidth += $(this).width();
});

现在,在完成此操作后,我想对每个$('.myclass')个元素执行另一个操作,例如

$('.myclass').each(function() {
  // use computed totalWidth for something else
});

我该怎么做?选择元素的第二次尝试不会产生一些问题吗?

1 个答案:

答案 0 :(得分:0)

不,再次选择元素不会产生任何问题,尽管它会花费一些不必要的时间来搜索您已经找到的元素。您可以通过使用链式.each调用来阻止此操作,如下所示:

var totalWidth = 0;
$('.myclass').each(function() {
  totalWidth += $(this).width();
}).each(function() {
  // use computed totalWidth for something else
});

或者,如果需要在两个循环之间进行一些中间操作,可以将jQuery集合存储在变量中:

var totalWidth = 0;
var $myclass = $('.myclass').each(function() {
  totalWidth += $(this).width();
});
// do other stuff
$myclass.each(function() {
  // use computed totalWidth for something else
});