节点操作(大集合)

概述 : 节点操作就是一种 父子兄 的关系

注 :  重点掌握父节点操作 和 子节点操作  (开发常用)

 

父节点操作:

方法 : element.parentNode

得到的是离元素最近的父级节点 , 如果找不到父节点就返回为 null
<!-- 节点的优点 -->
    <div>我是div</div>
    <span>我是span</span>
    <ul>
        <li>我是li</li>
        <li>我是li</li>
        <li>我是li</li>
        <li>我是li</li>
    </ul>
    <div class="demo">
        <div class="box">
            <span class="erweima">×</span>
        </div>
    </div>

    <script>
        // 1. 父节点 parentNode
        var erweima = document.querySelector('.erweima');
        // var box = document.querySelector('.box');
        // 得到的是离元素最近的父级节点(亲爸爸) 如果找不到父节点就返回为 null
        console.log(erweima.parentNode);
    </script>

 

子节点操作 : 

ul.children  (开发常用)
得到的是 ul 里所有的子节点
 
ol.firstElementChild   (存在兼容性问题  le9 以上支持)
得到的是 元素的第一个子节点
 
ol.lastElementChild  (存在兼容性问题  le9 以上支持)
得到的是 元素的最后一个子节点
 
ol.children[0]   (开发常用)
得到的是 元素的第一个子节点
 
ol.children[ol.children.length - 1]    (开发常用)
得到的是 元素的最后一个子节点
 
<!-- 节点的优点 -->
    <div>我是div</div>
    <span>我是span</span>
    <ul>
        <li>我是li</li>
        <li>我是li</li>
        <li>我是li</li>
        <li>我是li</li>

    </ul>
    <ol>
        <li>我是li1</li>
        <li>我是li2</li>
        <li>我是li3</li>
        <li>我是li4</li>
    </ol>

    <div class="demo">
        <div class="box">
            <span class="erweima">×</span>
        </div>
    </div>

    <script>
        // DOM 提供的方法(API)获取
        var ul = document.querySelector('ul');
        var lis = ul.querySelectorAll('li');
        // 1. 子节点  childNodes 所有的子节点 包含 元素节点 文本节点等等
        console.log(ul.childNodes);
        console.log(ul.childNodes[0].nodeType);
        console.log(ul.childNodes[1].nodeType);
        // 2. children 获取所有的子元素节点 也是我们实际开发常用的
        console.log(ul.children);


     
         var ol = document.querySelector('ol');
          // 1. firstChild 第一个子节点 不管是文本节点还是元素节点
          console.log(ol.firstChild);
          console.log(ol.lastChild);
          // 2. firstElementChild 返回第一个子元素节点 ie9才支持
          console.log(ol.firstElementChild);
          console.log(ol.lastElementChild);
          // 3. 实际开发的写法  既没有兼容性问题又返回第一个子元素
          console.log(ol.children[0]);
          console.log(ol.children[ol.children.length - 1]);
 
    </script>

 

兄弟节点操作 : 

div.nextElementSibling  (存在兼容性问题  le9 以上支持)
得到下一个兄弟元素节点
div.previousElementSibling  (存在兼容性问题  le9 以上支持)

得到下一个兄弟元素节点

    <div>我是div</div>
    <span>我是span</span>
    <script>
        var div = document.querySelector('div');
        // 1.nextSibling 下一个兄弟节点 包含元素节点或者 文本节点等等
        console.log(div.nextSibling);
        console.log(div.previousSibling);
        // 2. nextElementSibling 得到下一个兄弟元素节点
        console.log(div.nextElementSibling);
        console.log(div.previousElementSibling);
    </script>

 

posted @ 2022-04-11 11:37  会前端的洋  阅读(95)  评论(0)    收藏  举报