从历史上看,任何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代码相同吗?
答案 0 :(得分:1)
这里有很多要点。
DOM4确实在Element上不包含getAttributes()
方法。但是,它确实有一个名为attributes
的属性,该属性在访问时会返回NamedNodeMap。
“ NamedNodeMap”的名称似乎有点误导,因为它的项目是Attr
个对象。
MDN已过期。 DOM4标准中Attr接口的早期版本没有扩展Node接口,但是发现它不兼容Web,因此现在the current definition of Attr可以做到,就像DOM3一样。