删除子循环在完成之前退出

2024-03-29

我有以下代码,它查找文档中类名为 foo 的所有元素,然后将它们全部删除

        function(doc) {
            var items = doc.getElementsByClassName('foo');
            alert(items.length);
            if(items.length>0) {
                for(var i=0;i<items.length;i++) {
                    alert(i);
                    doc.body.removeChild(items[i]);
                }
        }

例如,items.length 为 3,该函数在运行一个循环后退出,当长度为 8 时,它在 3 处退出。任何帮助将不胜感激。另外,当我一次又一次运行该函数时,它最终会删除所有元素。


你的问题是NodeList由返回getElementsByClassName()正在直播。要么按照 Felix 的建议先将其转换为数组,要么向后迭代:

var items = doc.getElementsByClassName('foo');
var i = items.length;
while (i--) {
    items[i].parentNode.removeChild(items[i]);
}

这是有效的,因为每次迭代从列表中删除的项目是列表中的最后一个项目,因此不会影响较早的项目。

我也改变了doc.body to items[i].parentNode为了更通用,如果您需要处理不是直接子元素的元素<body>元素。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

删除子循环在完成之前退出 的相关文章

随机推荐

  • 在 Ruby 脚本中运行命令行命令

    有没有办法通过 Ruby 运行命令行命令 我正在尝试创建一个小型 Rub y 程序 该程序可以通过 screen rcsz 等命令行程序拨出和接收 发送 如果我能将所有这些与 Ruby MySQL 后端等 结合起来 那就太好了 是的 有以下
  • 用于包装 JsonResult 操作响应的 .Net 过滤器

    我已经建立了一个网络 API 应用程序并发现了一个问题 目前在我的代码中处理得不好 该问题总结为包装所有内容Json从具有自定义节点 根 的所有 API 操作返回的对象 即 我有这个 json 数组 响应 Category Pages Us
  • 为什么不允许在非类型参数中进行部分特化以使用嵌套模板参数

    我有这个代码 template
  • 连接两个 std::vector

    如何连接两个std vectors vector1 insert vector1 end vector2 begin vector2 end
  • 如何在.NET Core中正确使用代码契约

    我想知道如何正确使用代码契约 NET核心 到目前为止我尝试将CC添加到我的项目中 编译和调试 我对消息感到困惑 该消息出现在每次使用的呼叫中Contract Requires 以及通过谷歌搜索找到的信息 该消息指出 必须使用代码契约二进制重
  • 如何使用 CSS 选择没有“类型”的

    我这里有3个
  • 为什么 Scala 在这种特殊情况下无法找到次要隐式值?

    我很难解释之间的行为差 异 通过主要隐式值或隐式值寻求附加隐式值 隐式转换 具体来说 这有效 trait Foo A implicit def fooString Foo String null implicit def value A i
  • 同步 Android 画廊中的照片

    我见过一些可以与 Android 图库同步照片的应用程序 例如 Picasa 并且我想自己创建类似的东西 我将拥有一个包含照片的远程服务器 并且用户将能够访问这些来自图库中的单独相册 如上述应用程序 然而 我不知道如何实现这一点 甚至不知道
  • 如何在 Nuxt3 中使用 @nuxtjs/axios 模块?

    我有这段代码可以从中获取API数据https fakestoreapi com products https fakestoreapi com products
  • 单击行后插入动态创建组件

    我正在研究解决方案 我想在单击行后附加动态创建的组件 我的表由带有操作按钮的行组成 单击该按钮我将调用角度函数并在该行之后加载组件 这是表代码 div class row div class col div div
  • 如何动态添加tinymce 4.x到textarea?

    我在初始化后动态地将tinymce添加到textarea时遇到了一个小问题 tinymce init selector textarea theme modern height 100 plugins advlist autolink im
  • SimpleCov 计算用户模型的 0% 覆盖率

    我决定尝试使用简单的科夫 https github com colszowka simplecovgem 我认为这是一个很酷的工具 但我有一个问题 我有一个模型User 我有user spec rb其中包含测试用例 但 simplecov
  • Html.DropDownListFor 设置选定值

    我创建一个 Html DropDownListFor 并从数据库中填充它 如何将选定的值设置为下拉列表 My View Html DropDownListFor m gt m Forms new SelectList Model Forms
  • 相对布局权重

    在布局资源 XML 中 我有 3 个relativelayout 它们位于主relativelayout 内 视图将垂直显示 这3个RelativeLayout 被设置为彼此相邻 我希望它们填充整个屏幕 无论屏幕尺寸是多少 我的布局视图
  • 堆的算法在列表列表中的实现

    我正在使用堆算法创建一个包含所述列表的每个排列的列表列表 每个排列将是其自己的列表 当我在算法中打印它时它可以正常工作 但是当我尝试将它添加到我的列表列表中并且它们都是相同的数组 4 1 2 3 时它不能正常工作 我注释掉了我测试过的打印内
  • 我们如何将上下文转换为片段引用?

    我有一个类 Common 和一个片段 FragmentTest Common java 是一个通用类 它具有其他活动的一些通用函数 这些函数通过每个活动的上下文访问 在这里我传递片段的上下文到该类中的函数 我正在这样做 在片段中 Commo
  • 如何在Python中将一列整数转换为标准小时时间?

    我有一个像这样的数据框 BuyTime ID SellTime 94650 1 94651 94717 1 94817 120458 2 114119 买入时间和卖出时间类型是整数 但我想将它们转换为标准时间日期 我已经用过 quote S
  • Javascript 强制在浏览器中打开链接

    有没有办法从 JavaScript 进行对象检测并强制在特定浏览器中打开链接 For eg 在 IE 中打开 在 Firefox 中打开 不 如果没有一些浏览器插件 绝对不行 如果可能的话 这将是一个巨大的安全风险
  • 数据表 - 按日期范围过滤 - 未返回正确的结果

    我目前正在使用 jQuery 的数据表插件https datatables net https datatables net 使用此处找到的日期范围插件http www daterangepicker com http www datera
  • 删除子循环在完成之前退出

    我有以下代码 它查找文档中类名为 foo 的所有元素 然后将它们全部删除 function doc var items doc getElementsByClassName foo alert items length if items l