在DOM(文档对象模型)中,HTML文档的层次结构被表示为树形结构,HTML文档的树形表示主要包含表示元素或标记的节点和标识文本串的节点构成。在JavaScript DOM中,Node常常被翻译成节点,下面我们通过实例,来了解一下Node的属性及方法。
51CTO推荐阅读:深入解读JavaScript中BOM和DOM
广州网站建设,网站建设,广州网页设计,广州网站设计
Node的属性介绍:
- nodeType:显示节点的类型
- nodeName:显示节点的名称
- nodeValue:显示节点的值
- attributes:获取一个属性节点
- firstChild:表示某一节点的第一个节点
- lastChild:表示某一节点的最后一个子节点
- childNodes:表示所在节点的所有子节点
- parentNode:表示所在节点的父节点
- nextSibling:紧挨着当前节点的下一个节点
- previousSibling:紧挨着当前节点的上一个节点
Node有各种各样的节点,我们先花一些时间认识他们,同时一并了解nodeType,nodeName和nodeValue属性:
名称:元素节点
◆nodeType:ELEMENT_NODE
◆nodeType值:1
◆nodeName:元素标记名
◆nodeValue:null
- <body>
- <div id = "t" ><span></span></div>
- </body>
- <script>
- var d = document.getElementById("t");
- document.write(d.nodeType);
- document.write(d.nodeName);
- document.write(d.nodeValue);
- //显示 1 DIV null
- </script>
名称:属性节点
◆nodeType:ATTRIBUTE_NODE
◆nodeType值:2
◆nodeName:属性名
◆nodeValue:属性值
- <body>
- <div id = "t" name="aaa"><span></span></div>
- </body>
- <script>
- var d = document.getElementById("t").getAttributeNode("name");
- document.write(d.nodeType);
- document.write(d.nodeName);
- document.write(d.nodeValue);
- //显示 2 name aaa
- </script>
名称:文本节点
◆nodeType:TEXT_NODE
◆nodeType值:3
◆nodeName:#text
◆nodeValue:文本内容
- <body>
- <div id = "t">bbb</div>
- </body>
- <script>
- var d = document.getElementById("t").firstChild;
- document.write(d.nodeType);
- document.write(d.nodeName);
- document.write(d.nodeValue);
- //显示 3 #text bbb
- </script>
名称:CDATA文本节点(XML中传递文本的格式)
广州网站建设,网站建设,广州网页设计,广州网站设计
◆nodeType:CDATA_SECTION_NODE
◆nodeType值:4
◆nodeName:#cdata-section
◆nodeValue:CDATA文本内容
attributes属性,直接获取一个属性节点,注意这里要使用[],保持IE和FF的兼容性。
- <body name="ddd">
- <div id = "t" name = "aaa"><span>aaa</span><span>bbb</span><span>ccc</span></div>
- </body>
- <script>
- var d = document.getElementById("t").attributes["name"];
- document.write(d.name);
- document.write(d.value);
- //显示 name aaa
- </script>
firstChild和lastChild属性,表示某一节点的第一个和最后一个子节点:
- <body>
- <div id = "t"><span>aaa</span><span>bbb</span><span>ccc</span></div>
- </body>
- <script>
- var d = document.getElementById("t");
- document.write(d.firstChild.innerHTML);
- document.write(d.lastChild.innerHTML);
- //显示 aaa ccc
- </script>
childNodes和parentNode属性,表示所在节点的所有子节点和所在节点的父节点,这里的childNodes注意是一个数组:
- <body name="ddd">
- <div id = "t"><span>aaa</span><span>bbb</span><span>ccc</span></div>
- </body>
- <script>
- var d = document.getElementById("t");
- document.write(d.childNodes[1].innerHTML);
- document.write(d.parentNode.getAttribute("name"));
- //显示 bbb ddd
- </script>
nextSibling和previousSibling属性,分别表示在parentNode的childNodes[]数组中,紧挨着当前节点的上一个和下一个节点:
- <body name="ddd">
- <div id = "t"><span>aaa</span><span>bbb</span><span>ccc</span></div>
- </body>
- <script>
- var d = document.getElementById("t").childNodes[1];
- document.write(d.nextSibling.innerHTML);
- document.write(d.previousSibling.innerHTML);
- //显示 ccc aaa
- </script>