为什么JavaScript NodeList是不可变的?

时间:2011-05-11 09:14:24

标签: javascript nodelist

最近我发现了一个元素的childNodes属性返回NodeList而不是Array的事实。现在我明白NodeList应该是一个实时的元素集合,但我不明白为什么它排除了它有像indexOf,甚至push这样的方法。

有人能解释为什么你能用NodeList做的唯一事情就是索引吗?

2 个答案:

答案 0 :(得分:4)

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

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

...当然还有您最喜欢的JavaScript库。

答案 1 :(得分:0)

我的印象就是这种情况,所以你必须使用适当的DOM机制来改变DOM结构。

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

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