1

假设我有一个带有标题属性的段落元素。既然 DOM 结构中的一切都是一个节点,那么 p 和 title 属性是什么关系呢?他们是兄弟姐妹还是 title 属性的子节点<p>或兄弟姐妹?我可以使用 nodeValue 属性访问 title 属性的内容吗?

4

1 回答 1

9

具有属性节点的元素是.ownerElement属性节点的。否则没有树状关系——属性节点的兄弟姐妹、父节点等是空的。

http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-637646024

Attr 对象继承了 Node 接口,但由于它们实际上不是它们所描述的元素的子节点,因此 DOM 不会将它们视为文档树的一部分。因此,节点属性 parentNode、previousSibling 和 nextSibling 对于 Attr 对象具有空值。

关系是:

var p = document.createElement("p");
p.title = "hello";

var titleAttr = p.attributes.title //from the element to the attribute

p = titleAttr.ownerElement //from the attribute node to the owning element

我可以使用 nodeValue 属性访问 title 属性的内容吗

如果您有一个属性节点,您可以使用以下命令访问键/名称:

titleAttr.nodeName; //"title"

您可以通过以下方式访问该值:

titleAttr.nodeValue; //"hello"

也是或.nodeType_2Node.ATTRIBUTE_NODE

于 2013-08-07T12:11:54.960 回答