**DOM节点类型:**

| 类型 | 值 | 说明 |
|---|---|---|
| ELEMENT_NODE | 1 | 元素节点 |
| ATTRIBUTE_NODE | 2 | 属性节点 |
| TEXT_NODE | 3 | 文本节点 |
| COMMENT_NODE | 8 | 注释节点 |
| DOCUMENT_NODE | 9 | 文档节点 |

 

1. <ul>
2.         <li>HTML5</li>
3.         <li>CSS3</li>
4.         <li>PHP</li>
5.         <li>JavaScript</li>
6.     </ul>

1. var list = document.querySelector('ul')
2.         console.log(list.childNodes)
3.         // childNodes属性返回子节点的集合 以childNodes对象
4.         console.log(list.childNodes.length)  //9
5.         console.log(list.childNodes[0].nodeType)  //3
6.         console.log(list.childNodes[0])  //#text //<ul>和<li>直接的空白节点
7.         console.log(list.childNodes[1])  //<li>HTML5</li>
8.
9.         for(var i = 0;i < list.childNodes.length;i++){
10.             // console.log(list.childNodes[i].nodeName)
11.             // nodeName得到节点类型的名称 是字符串 #text表示文本 li表示标签
12.
13.             // console.log(list.childNodes[i].nodeType)
14.             // nodeType得到的是节点类型的值 数字1表示元素节点 3表示文本节点
15.
16.             // console.log(list.childNodes[i].nodeType)
17.             // nodeValue 属性规定节点的值 
18.             // 元素节点是undefined 或 null 
19.             // 文本节点是文本本省
20.             // 属性节点是属性值
21.
22.         var node = list.childNodes[i]
23.         if(node.nodeType != Node.TEXT_NODE){
24.             console.log(node.nodeName)
25.
26.             var liChildren = node.childNodes
27.             console.log(liChildren[0].nodeValue)
28.
29.             var liChild = liChildren[0]
30.             console.log(liChild.nodeName)
31.             console.log(liChild.nodeValue)
32.         }
33.
34.         }

1. var textNode = list.childNodes[1].childNodes[0]
2.         console.log(textNode.textContent)

textContent 和 nodeValue 都可以弹出文本节点的内容

 

1.  textNode.appendData(':HTML5的第五个版本')  //HTML5:HTML5的第五个版本
2. // 在结尾处添加新的文本
3.
4. textNode.insertData(1,'----')  //H----TML5:HTML5的第五个版本
5. // 在指定的位置插入新文本
6.
7. textNode.replaceData(5,5,'****')  //H----****HTML5的第五个版本
8. // 替换指定区域的文本
9. // 三个参数 (指定的位置,替换的数量,'替换的字符')
10.
11. textNode.deleteData(1,5) //H***HTML5的第五个版本
12. // 删除指定区域的文本
13.
14. alert(textNode.substringData(7,10))  //L5的第五个版本
15. // 获取指定区域的文本 substringData(开始位置,字符的数量)
16.
17. alert(textNode.length)
18. // 获取文本节点的个数
19.
20. alert(textNode.data)
21. // 获取文本节点的内容
22.
23. alert(textNode.wholeText)
24. // 获取文本节点的内容
25.
26. textNode.remove()
27. // 移除文本节点