【问题标题】:Does removing elements from within jQuery.each mess up the loop?从 jQuery.each 中删除元素会破坏循环吗?
【发布时间】:2015-08-26 09:19:31
【问题描述】:

假设我做了类似的事情:

$('.item').each(function (index)
{
   if (index === 3)$(this).remove(); 
   else if (index === 4)$(this).remove();
});

这会奏效还是会弄乱循环/索引,因为我将在循环遍历数组时从数组中删除元素?

添加时同样的问题:

$('.item').each(function (index)
{
   $(this).parent().append('<div class="item"></div>');
});

这会造成无限循环吗?

【问题讨论】:

    标签: javascript jquery arrays foreach


    【解决方案1】:

    并非如此,因为您只是从 dom 结构而不是从 jQuery 对象本身中删除元素。

    jQuery 对象不是像getElementsByClassName() 返回的HTMLCollection 对象那样的活动对象。

    所以即使元素从 dom 中移除,它的引用仍然存在于调用 each 方法的 jQuery 对象中。

    【讨论】:

      猜你喜欢
      • 2022-07-27
      • 1970-01-01
      • 2021-08-18
      • 1970-01-01
      • 2020-03-15
      • 2013-12-17
      • 2016-03-09
      • 2012-08-29
      • 1970-01-01
      相关资源
      最近更新 更多