- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想访问实时 HTMLCollection 或 NodeList 中的每个元素(仅使用 JavaScript,不使用 jQuery 或任何其他 JavaScript 库),例如 var elements = document.getElementsByClassName('class-name') 返回的集合;
如果 DOM 没有改变,那么我可以使用 for
循环来做到这一点:
for(var i=0; i<elements.length; i++)
{
//Do something with elements[i]
}
但是当for
循环还在运行,并且类class-name
的元素有添加或删除时怎么办。如果删除或添加了一个元素
,那么索引将会改变。
那么,仅使用 JavaScript,我如何才能确保在 for
循环运行时,elements
中的 element
不会遗漏。
最佳答案
在给定时间只有一个脚本在运行。在脚本运行时,DOM 可能发生的唯一更改是脚本所做的更改。所有其他任务、事件等将耐心等待您的脚本执行完毕。
所以
你会没事的。
关于javascript - 访问 HTMLCollection/NodeList 中的每个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18235591/
有点好奇,因为我知道 HTMLCollections 会自动更新自己,所以我尝试使用 Proxy 观察它们。如下所示 let imagesCollection = document.images; l
// Find all posts var posts = node.getElementsByClassName("userContentWrapper"); var post, text; con
如果我调用document.getElementsByClassName('cl'),我会得到一个 HTMLCollection。它似乎包含 Element 对象而不是 HTMLElement 对象,
rowGetter = i => { const row = this.state.estimateItemList[i]; const selectRevison = this.st
我有一个页面加载由 1000 个元素组成的 HTMLCollection。 我想要实现的是,一旦页面加载,我希望 HTMLCollection 立即被打乱。 (我无法控制如何从服务器接收数据) 我不知
我知道有关于如何访问和迭代 HtmlCollection 的答案,但它在这里对我不起作用: 我得到了一些类为“tabSheetActive”的元素,这些元素的数量可以是 1 或更多。 我通过以下方式访
当我使用 getElementsByClassName 时,我无法访问 HTMLCollection 类型。 我想得到长度但是我不能得到那个 var documentHeader = parent.d
我做了一个网站,需要插入 javascript。我想从我的 HTML 菜单中获取子节点。 这是我的 HTML 结构的一部分:
我发现 HTMLOptionsCollection 对象继承了 HTMLCollection 的属性和方法。 HTMLOptionsCollections->HTMLCollection->Objec
我在这方面遇到了一些困难。在 Backbone 中,我有一个这样的函数: functionOne: function(){ $('#myTExtbox-' + budgetLine.
我有静态 html 存储在 javascript 字符串文字模板中。 单击按钮时(模式弹出窗口),我需要通过函数传递存储的静态 html,并使用存储在隐藏 div 中的动态数据更新其中的元素。 我需要
我试图通过这样做来收集文档中的所有“li”: var first = document.getElementById("scroll-container").getElementsByTagName(
如何在另一个自定义元素的影子 dom 中迭代一个自定义元素的实例? HTMLCollections 似乎没有按预期运行。 (我是一个 jQuerian 和 vanilla js 的新手,所以我确定我在
我是 typescript 的新手,我正在尝试迭代 document.getElementsByClassName() 获取的 HTMLCollection。我的代码是: let tag_list =
我明白HTMLCollection实际上不是一个数组,否则它会被定义为一个数组。我使用一个名为 isArray() 的帮助函数来检测对象是否为数组。我到处都在使用这个小 helper ,在检查 htm
这个问题在这里已经有了答案: Why does jQuery or a DOM method such as getElementById not find the element? (6 个答案)
我正在尝试填充 Element.prototype.children应该返回 HTMLCollection 有一个window.HTMLCollection 不过 var h = new HTMLCo
我有特性搜索功能,可以让我搜索卧室数量、浴室数量、价格(高和低),并且我还试图让它告诉我客户搜索的词是否在记录。比如“河流”之类的。 我一直在使用 .contains() 和 .indexOf(),但
我正在尝试收集此页面上有评级的所有产品的评级:https://www.theluxelens.com/pages/photoshop-overlays 。虽然我可以让下面的代码在我自己的浏览器 (Ch
在 HTML 中我有 9 s 类为“.square”。 我想让它们可点击,我想知道点击了多少次和哪一个并将其存储到数组中。 所以,如果我点击第五个 应点击 5 次[0,0,0,0,0,5,0,0,0
我是一名优秀的程序员,十分优秀!