一、节点的分类

  1. a.nodeType==1 为元素节点
  2. b.nodeType==2 为属性节点
  3. c.nodeType==3 位文本节点

获取节点

  1. <!-- nodeType 判断第一个节点的类型-->
  2. <p id="app" >123</p>
  3. <script>
  4. var app=document.getElementById("app");
  5. var id=app.getAttributeNode("id") //获取属性节点
  6. console.log(app.nodeType); //1 元素节点
  7. console.log(app.firstChild.nodeType); //获取第一个子节点 3 文本节点
  8. console.log(id.nodeType); //2 属性节点
  9. </script>

二、节点的获取

childNodes 获取所有子节点 (不管文本还是属性节点)

parentNode 父元素节点

  1. <ul id="app">
  2. <li>hello world</li>
  3. <li>hello world</li>
  4. <li>hello world</li>
  5. <li>hello world</li>
  6. </ul>
  7. <script>
  8. var app = document.getElementById("app")
  9. var childs = app.childNodes;
  10. console.log(childs); // 所有的子节点 共有9个
  11. var arr = []
  12. for(var i = 0;i<childs.length;i++){
  13. if(childs[i].nodeType == 1){
  14. arr.push(childs[i])
  15. }
  16. }
  17. console.log(arr);
  18. </script>

children 只获取元素节点

  1. <ul id="app">
  2. <li>hello world</li>
  3. <li>hello world</li>
  4. <li>hello world</li>
  5. <li>hello world</li>
  6. </ul>
  7. <script>
  8. var app = document.getElementById("app")
  9. console.log(app.children) // 只获取元素节点
  10. </script>

三、节点

2-1 子节点

  • FirstChild //包含所有类型的节点 获取第一个子节点
  • FirstElementChild //IE9以下不兼容 获取第一个元素子节点
  • LastChild //所有类型的节点 获取第一个子节点
  • LastElementChild //IE9以下不支持 兼容问题的解决 获取第一个元素子节点
    //firstElementChild在ie9以上是一个对象,IE9以下undefined


2-2 兄弟节点

  • nextSibling 返回指定节点之后紧跟的节点,在相同的树层级中。
  • nextElementSibling //IE9以下不支持 返回指定元素之后的下一个兄弟元素(相同节点树层中的下一个元素节点)
  • previousSibling 返回列表项的 previousSibling(前一个同胞节点)
  • previousElementSibling //IE9以下不支持 属性返回指定元素的前一个兄弟元素(相同节点树层中的前一个元素节点)