检索DOM 4中的属性映射

时间:2019-04-21 17:29:23

标签: html dom

从历史上看,任何Element的XML DOM都可以调用element.getAttributes(),这将返回NamedNodeMap。此映射使您可以迭代Node实例,在这种情况下,它们是描述每个属性的Attr实例。

但是当阅读MDN对Node.ATTRIBUTE_NODE的{​​{3}}枚举值的描述​​时,他们会说:

  

Attribute中的Element。从DOM4开始,属性不再实现Node接口。

他们在谈论Attr吗?但是,如果Attr在DOM 4中未实现Node,则element.getAttributes()返回什么?是NamedNodeMap not 实例的Attr个节点?

或者Element在DOM 4中根本没有element.getAttributes()方法?如果不是,那么DOM 4如何让我遍历所有属性?我使用element.getAttributes()在Java 11中编写的代码是否最终会过时?和我在浏览器中编写的JavaScript代码相同吗?

1 个答案:

答案 0 :(得分:1)

这里有很多要点。

DOM4确实在Element上不包含getAttributes()方法。但是,它确实有一个名为attributes的属性,该属性在访问时会返回NamedNodeMap。

“ NamedNodeMap”的名称似乎有点误导,因为它的项目是Attr个对象。

MDN已过期。 DOM4标准中Attr接口的早期版本没有扩展Node接口,但是发现它不兼容Web,因此现在the current definition of Attr可以做到,就像DOM3一样。