1.父节点—parentNode

  1. <div>
  2. <p id="child">hello world</p>
  3. </div>
  4. <script>
  5. let child = document.getElementById("child");
  6. console.log(child.parentNode) //<div><p id="child">hello world</p></div>
  7. </script>

1.1通过js实现点击删除/添加标签

  1. <p><input type="text" placeholder="添加品牌" id="input"><button id="btn">添加</button></p>
  2. <ul id="parent">
  3. <li><span>小米</span><a href="#">删除</a></li>
  4. <li><span>苹果</span><a href="#">删除</a></li>
  5. <li><span>华为</span><a href="#">删除</a></li>
  6. </ul>
  7. <script>
  8. var parent=document.getElementById("parent");
  9. var input=document.getElementById("input");
  10. var btn=document.getElementById("btn");
  11. btn.onclick=function(){
  12. var value=input.value;
  13. var li=document.createElement("li");
  14. var span=document.createElement("span");
  15. span.innerHTML=value;
  16. li.appendChild(span);
  17. var a=document.createElement("a");
  18. a.href="#";
  19. a.innerHTML="删除"
  20. li.appendChild(a);
  21. parent.appendChild(li);
  22. input.value=""
  23. }
  24. var deletes=document.getElementsByTagName("a");
  25. for(var i=0;i<deletes.length;i++){
  26. deletes[i].onclick=function(){
  27. var parentNode=this.parentNode;
  28. parentNode.style.display="none";
  29. return false;//阻止跳转事件的执行
  30. }
  31. }
  32. </script>

2.子节点childNode和children的区别

  • childNodes是获取所有类型的子节点 不会区分文本和元素节点
  • children只会获取元素节点
    <div id="parent">
          hello world
          <p id="first">good</p>
          <p>good</p>
          <p>good</p>
      </div>
      <script>
          /*  
          childNode (7) -->获取子节点  不会区分文本和元素节点
          children(4)
           */
           var parent=document.getElementById("parent")
           var childs=parent.children;
           var first=document.getElementById("first")
           console.log(childs)
       </script>
    

    3.兄弟节点

    nextSibling  -->获取下一个兄弟节点
    nextElementSibling  -->获取下一个兄弟元素节点
    
<div id="parent">
        hello world
        <p id="first">good</p>
        <p>good</p>
        <p>good</p>
    </div>
    <script>
          var parent=document.getElementById("parent")
         var childs=parent.children;
         var first=document.getElementById("first")
         console.log(first.nextSibling)  //#text
         console.log(first.nextElementSibling)   //<p>good</p>
    </script>

4.第一个/最后一个节点/元素节点

firstChild //包含所有类型的节点
firstElementChild //第一个元素节点
lastChild //所有类型的节点
lastElementChild //最后一个元素节点

5.节点分类

  • 元素节点
  • 文本节点
  • 属性节点