1. 节点类型(NodeType):
每个节点都有一个类型,可以通过 nodeType 属性获取。常见的节点类型有:
- 1(ELEMENT_NODE): 元素节点
- 2(ATTRIBUTE_NODE): 属性节点
- 3(TEXT_NODE): 文本节点
- 8(COMMENT_NODE): 注释节点
- 9(DOCUMENT_NODE): 文档节点
- 11(DOCUMENT_FRAGMENT_NODE): 文档片段节点
var nodeType = element.nodeType;
console.log("Node Type:", nodeType);
2. 节点名称(NodeName):
nodeName 属性用于获取节点的名称。对于元素节点,返回元素的标签名;对于文本节点,返回 #text。
var nodeName = element.nodeName;
console.log("Node Name:", nodeName);
3. 节点值(NodeValue):
nodeValue 属性用于获取或设置节点的值。对于文本节点,表示文本内容;对于元素节点,通常为 null。
var nodeValue = element.nodeValue;
console.log("Node Value:", nodeValue);
4. 节点的子节点数量和子节点列表:
通过 childNodes 属性获取节点的所有子节点列表,以及通过 childElementCount 获取元素节点的子元素数量。
var childNodes = element.childNodes;
var childElementCount = element.childElementCount;
console.log("Child Nodes:", childNodes);
console.log("Child Element Count:", childElementCount);
5. 父节点(parentNode)和兄弟节点:
通过 parentNode 属性获取节点的父节点,通过 nextSibling 和 previousSibling 获取兄弟节点。
var parentNode = element.parentNode;
var nextSibling = element.nextSibling;
var previousSibling = element.previousSibling;
console.log("Parent Node:", parentNode);
console.log("Next Sibling:", nextSibling);
console.log("Previous Sibling:", previousSibling);
6. 节点是否包含子节点:
通过 hasChildNodes 方法检查节点是否有子节点。
var hasChildren = element.hasChildNodes();
console.log("Has Children:", hasChildren);
示例:
考虑以下 XML 片段:
<book>
<title>Introduction to XML</title>
<author>John Doe</author>
</book>
对应的 DOM 节点信息获取:
var bookElement = document.getElementsByTagName("book")[0];
// 获取节点类型
console.log("Node Type:", bookElement.nodeType); // 输出: 1 (ELEMENT_NODE)
// 获取节点名称
console.log("Node Name:", bookElement.nodeName); // 输出: BOOK
// 获取节点值
console.log("Node Value:", bookElement.nodeValue); // 输出: null (对于元素节点)
// 获取子节点数量和子节点列表
console.log("Child Nodes:", bookElement.childNodes); // 输出: NodeList [title, author]
console.log("Child Element Count:", bookElement.childElementCount); // 输出: 2
// 获取父节点和兄弟节点
var parentNode = bookElement.parentNode;
var nextSibling = bookElement.nextSibling;
var previousSibling = bookElement.previousSibling;
console.log("Parent Node:", parentNode); // 输出: DOCUMENT_NODE
console.log("Next Sibling:", nextSibling); // 输出: null (没有下一个兄弟节点)
console.log("Previous Sibling:", previousSibling); // 输出: null (没有前一个兄弟节点)
// 检查是否有子节点
var hasChildren = bookElement.hasChildNodes();
console.log("Has Children:", hasChildren); // 输出: true
这个示例演示了如何通过 DOM 方法和属性获取节点的各种信息。这些信息对于动态操作文档结构和内容非常有用。
转载请注明出处:http://www.zyzy.cn/article/detail/14563/XML DOM