• 节点操作


    1. 获取节点

    1.1 直接获取节点

    父子关系:

    • element.parentNode
    • element.firstChild/element.lastChild
    • element.firstElementChild/element.lastElementChild
    • element.childNodes/element.children

    兄弟关系:

    • element.previousSibling/element.nextSibling
    • element.previousElementSibling/element.nextElementSibling
    <body>
      <ul id="ul">
        <li>First</li>
        <li>Second</li>
        <li>Third</li>
        <li>Fourth</li>
      </ul>
      <p>Hello</p>
    </body>
    
    var ulNode = document.getElementsByTagName("ul")[0];
    console.log(ulNode.parentNode);             //<body></body>
    console.log(ulNode.previousElementSibling); //null
    console.log(ulNode.nextElementSibling);     //<p>Hello</p>
    console.log(ulNode.firstElementChild);      //<li>First</li>
    console.log(ulNode.lastElementChild);       //<li>Fourth</li>
    

    1.2 通过接口获取节点

    • getElementById
    • getElementsByTagName
    • getElementsByClassName
    • querySelector
    • querySelectorAll

    getElementById
    获取文档中指定id的节点对象。getElementById只作用于document,返回唯一值。

    var element = document.getElementById('id');
    

    getElementsByTagName
    获取指定标签元素节点的集合。此接口可直接通过元素而获取,不必直接作用于document之上。

      <ul id="ul">
        <li>First</li>
        <li>Second</li>
        <li>Third</li>
        <li>Fourth</li>
      </ul>
    
    var ul = document.getElementById('ul');
    console.log(ul.getElementsByTagName('li')); // HTMLCollection(4) [li, li, li, li]
    console.log(document.getElementsByTagName('li')); // HTMLCollection(4) [li, li, li, li]
    // 取出第一个li元素
    console.log(document.getElementsByTagName('li')[0]); // <li>First</li>
    

    getElementsByClassName
    获取指定元素中具有指定class的所有节点。多个class可的选择可使用空格分隔,与顺序无关。

      <ul id="ul">
        <li class="li first">First</li>
        <li>Second</li>
        <li>Third</li>
        <li>Fourth</li>
      </ul>
    
    var body = document.getElementsByTagName('body')[0];
    console.log(body.getElementsByClassName('li first')); // HTMLCollection [li.li.first]
    console.log(body.getElementsByClassName('first li')); // HTMLCollection [li.li.first]
    
    console.log(document.getElementsByClassName('li first')); // HTMLCollection [li.li.first]
    console.log(document.getElementsByClassName('first li')); // HTMLCollection [li.li.first]
    

    querySelector / querySelectorAll

      <ul id="ul">
        <li class="aaa">First</li>
        <li class="aaa">Second</li>
        <li>Third</li>
        <li>Fourth</li>
      </ul>
    
    var ul = document.getElementById('ul');
    console.log(ul.querySelector('.aaa')); // <li class="aaa">First</li>
    console.log(ul.querySelectorAll('.aaa')); // NodeList(2) [li.aaa, li.aaa]
    
    console.log(document.querySelector('.aaa')); // <li class="aaa">First</li>
    console.log(document.querySelectorAll('.aaa')); // NodeList(2) [li.aaa, li.aaa]
    

    2. 创建节点

    2.1 创建元素节点

    document.createElement('tagName')
    

    2.2 创建文本节点

    document.createTextNode('text')
    

    3. 修改节点

    3.1 修改文本内容

    获取或设置节点以及其后代节点的文本内容。

    <p class="p">Hello</p>
    
    var p = document.getElementsByTagName('p')[0];
    console.log(p.textContent); // Hello
    console.log(p.innerText); // Hello
    

    textContentinnerText的作用是一样的。

    3.2 innerHTML

    获取或设置指定节点之中所有的HTML内容。

    var elementsHTML = element.innerHTML;
    

    4. 插入节点

    appendChild
    在指定的元素内追加一个元素节点。

    <ul id="tea">
    	<li>红茶</li>
    	<li>绿茶</li>
    	<li>普洱茶</li>
    </ul>
    <ul id="drink">
    	<li>咖啡</li>
    	<li>牛奶</li>
    	<li>果汁</li>
    </ul>
    
    var drink = document.getElementById('drink');
    var li = document.createElement('li');
    li.innerText = '啤酒';
    drink.appendChild(li);
    

    insertBefore
    在指定元素的指定节点前插入指定的元素。

    var tea = document.getElementById('tea');
    var li = document.createElement('li');
    li.innerText = '凉茶';
    tea.insertBefore(li, tea.firstChild);
    

    5. 删除节点

    <ul id="tea">
    	<li>红茶</li>
    	<li>绿茶</li>
    	<li id="puer">普洱茶</li>
    </ul>
    <ul id="drink">
    	<li>咖啡</li>
    	<li>牛奶</li>
    	<li>果汁</li>
    </ul>
    
    var tea = document.getElementById('tea');
    tea.removeChild(document.getElementById('puer'));
    

    参考:

  • 相关阅读:
    mysql关联查询
    MySQL数据库面试题(转发来自https://thinkwon.blog.csdn.net/article/details/104778621)
    iview + vue + thinphp5.1 源码
    <!--标签嵌套规则-->
    PHP的基本变量检测方法
    PHP的八种变量
    php变量命名规范
    C++11新特性-常用
    算法设计-DP常见问题及解题技巧
    Web开发-概述
  • 原文地址:https://www.cnblogs.com/gzhjj/p/11413181.html
Copyright © 2020-2023  润新知