我有以下情况:

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


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

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


我怎样才能做到这一点?选择元素的第二次尝试不会造成问题吗?

最佳答案

不,再次选择元素不会造成任何问题,尽管它确实花费了一些不必要的时间来搜索已找到的元素。您可以通过使用链接的.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
});

关于javascript - 如何使用jQuery对DOM元素执行重复的迭代操作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42654486/

10-12 03:29