为什么 JavaScript NodeList 是不可变的?

发布于 2024-11-06 19:17:13 字数 152 浏览 1 评论 0原文

最近我发现元素的 childNodes 属性返回 NodeList 而不是数组。现在我明白 NodeList 应该是元素的实时集合,但我不明白为什么这会阻止它使用像 indexOf 甚至 Push 这样的方法。

谁能解释一下为什么对 NodeList 唯一能做的就是索引它?

Recently I came across the fact that the childNodes property of an element returns a NodeList and not an Array. Now I understand that a NodeList is meant to be a live collection of elements, but I don't get why that precludes it having methods like indexOf, or even push.

Could anyone explain why the only thing you can do with a NodeList is index it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

無處可尋 2024-11-13 19:17:13

因为这就是它指定的方式。 DOM API 是与 JavaScript 分开设计的。事实上,NodeList 与 JavaScript 数组有一些共同点(长度 和索引)只是......好吧,这实际上可能不是一个巧合 ,而是设计过程中投入的副产品。请记住,JavaScript 并不是唯一具有 DOM 绑定的语言。

您可以使用 DOM API 轻松影响 NodeList 的内容:

...或者当然是您最喜欢的 JavaScript 库。

Because that's the way it's specified. The DOM API was designed separately from JavaScript. The fact that NodeList has some common aspects with JavaScript arrays (length and indexing) is just...well, it's probably not actually a coincidence, but a by-product of inputs into the design process. Remember that JavaScript is not the only language that has DOM bindings.

You can readily affect the contents of a NodeList using the DOM API:

...or of course, your favorite JavaScript library.

老街孤人 2024-11-13 19:17:13

我的印象是,在这种情况下,您必须使用正确的 DOM 机制来更改 DOM 结构。

看看它的兼容性问题,无论如何使用 DOM 方法可能更安全:

http://reference.sitepoint.com/ javascript/NodeList

I was under the impression that this was the case so that you'd have to use the proper DOM mechanisms for altering DOM structures.

Looking at it's compatibility problems, it's probably safer to use DOM methods anyway:

http://reference.sitepoint.com/javascript/NodeList

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文