最近我发现了一个元素的childNodes属性返回NodeList而不是Array的事实。现在我明白NodeList应该是一个实时的元素集合,但我不明白为什么它排除了它有像indexOf,甚至push这样的方法。
有人能解释为什么你能用NodeList做的唯一事情就是索引吗?
答案 0 :(得分:4)
因为这是它的指定方式。 DOM API与JavaScript分开设计。 NodeList
与JavaScript数组(length
和索引)有一些共同点的事实只是......好吧,它实际上可能不是巧合,而是副产品对设计过程的投入。请记住,JavaScript不是唯一具有DOM绑定的语言。
您可以使用DOM API轻松影响NodeList
的内容:
...当然还有您最喜欢的JavaScript库。
答案 1 :(得分:0)
我的印象就是这种情况,所以你必须使用适当的DOM机制来改变DOM结构。
考虑到它的兼容性问题,无论如何都使用DOM方法可能更安全: