历史上在任何Element
的XML DOM中都可以调用element.getAttributes()
,它将返回NamedNodeMap
。此映射允许您迭代Node
实例,在这种情况下是描述每个属性的Attr
实例。
但在阅读MDN对node type列举的Node.ATTRIBUTE_NODE
值的描述时,他们说:
Attribute
的Element
。从DOM4开始,属性不再实现Node
接口。
他们在谈论Attr
吗?但如果Attr
没有在DOM 4中实现Node
,element.getAttributes()
会返回什么? NamedNodeMap
节点不是Attr
的实例?
或者Element
在DOM 4中根本没有element.getAttributes()
方法?如果没有,DOM 4如何让我遍历所有属性?我使用element.getAttributes()
在Java 11中编写的代码是什么,因此最终会过时?我在浏览器中编写的JavaScript代码也一样吗?
这里有各种各样的观点。
DOM4确实不包含Element上的getAttributes()
方法。但是,它确实有一个名为attributes
的属性,它在访问时返回一个NamedNodeMap。
“NamedNodeMap”似乎是一个有点误导性的名称,因为它的项目是Attr
对象。
MDN已过期。早期版本的DOM4标准中的Attr接口没有扩展Node接口,但发现它不是Web兼容的,所以现在the current definition of Attr就像DOM3那样。