zoukankan      html  css  js  c++  java
  • JS原生DOM增删改查操作

    1.0DOM操作增删改查

    1.1. 查询

    就是获取元素

    1. 标准 DOM API
      • doucment.getElementById
      • document.getElementsByTagName
      • document.getElementsByName
      • document.getElementsByClassName
      • document.querySelectorAll
    2. 亲属访问
    3. 属性获取
      • getAttribute
      • getAttributeNode

    1.2. 增加

    1. 创建
      • document.createEelement 创建元素节点
      • document.createTextNode 创建文本节点
      • doucment.createAttribute 属性节点
      • innerHTML
      • innerText
      • cloneNode()  
    2. 插入
      • appendChild 追加到结尾处
      • innerHTML
      • insertBefore(a,b) 用法:将元素a插入到b元素的前面
        父元素.insertBefore( 新元素, 旧元素 );
        // 将 新元素 插入到 旧元素 的前面
        
    3. 其他
      • style 的操作
      • setAttribute( 属性名, 属性值 )

    1.3. 删除

    1. 删除元素
      • removeChild
      • removeAttributeNode
      • parent.removeChild  有返回值,其返回值未被完全删除还能进行其他操作(如插入操作)
      • ele.remove    完全删除

    1.4 修改

    1. 修改节点
      • 删除节点再加入
    2. 修改样式
      • style.xxx = vvv;
      • setAttribute
    3. 修改文本
      • innerHTML
      • innerText
      • 节点操作
      • nodeValue
    4. 修改属性
      • .xxx = vvv
      • setAttribute修改属性
      • replaceChild()    

     2对于不同DOM节点的操作总结

        虽然上面也全面的总结了相关的操作,但其实在查询使用时我更喜欢根据节点的NodeType来操作,因此对于属性节点和元素节点的常见操作分别归纳了一下

     2.1元素节点

    2.1.1  添加 (先创建再添加)

      创建

           document.createEelement()    创建元素节点

           当然使用 innerHTML,cloneChild的方法也能实现创建元素的目的

        加入
          * appendChild    追加到结尾处
          * innerHTML
          * insertBefore   

    2.1.2  删除元素

      最常用得当然是removeChild () ;

          关于删除子元素:

         // 从 node 中删除 一个 div
           node.removeChild( divDOM );
          // 假设 node 节点中只有一个元素 div
           node.innerHTML = '';

    2.1.3修改节点 一般都是删除再加入,即removeChild+appendChild,也可以使用replaceChild() 直接替换

    先总结这些,其实DOM的方法虽然多,但好在常用的很少见,希望大家可以在理解DOM结构的基础上熟练操作DOM的apl。

      3.2 元素节点  

      3.2.1 添加属性    

        doucment.createAttribute()  创建属性节点

        使用 setAttribute 添加属性
            // 添加自定义, 非标准的属性 ( DOM-Core ) 

        div.setAttribute( 'attrName', 'attrValue' );
        使用 .xxx = vvv利用对象的动态特性添加属性  
            // 添加的标准属性( HTML-DOM )
                    div.attrName = 'attrValue'; 
        第三种( 了解 )使用 DOM 节点方法
            // 纯 DOM-Core 的做法
                    var attrNode = document.createAttribute( 'test' );//创建属性节点对象
                    attr.nodeValue = '测试';  //设置属性值
                    div.setAttributeNode( attrNode );   //添加给div
        区别
            div.setAttributeNode(attrnode对象)
            div.setAttribute('属性名','属性值‘);

    3.2.2 删除
            removeAttribute(’属性名’)
            removeArrtibuteNode(节点对象名)

        //removeAttribute 是 为了 简化node.removeAttribute( '属性名' ),不用先获取属性节点再删除,而是直接操作元素节点;

    3.33   获取
        getAttribute('属性名 ')  获取属性值  //简化了node.getAttributeNode( '属性名' );


        getAttributeNode('属性名')  获取属性节点对象   

      // var attrNode = node.getAttributeNode( '属性名' );
      // attrNode.nodeValue;

  • 相关阅读:
    AtCoder Regular Contest 093
    AtCoder Regular Contest 094
    G. Gangsters in Central City
    HGOI 20190711 题解
    HGOI20190710 题解
    HGOI 20190709 题解
    HGOI 20190708 题解
    HGOI20190707 题解
    HGOI20190706 题解
    HGOI 20190705 题解
  • 原文地址:https://www.cnblogs.com/jayfeng/p/11910365.html
Copyright © 2011-2022 走看看