zoukankan      html  css  js  c++  java
  • dom元素的增删查改

    https://www.jianshu.com/p/b0aa846f4dcc

    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 用法?将元素插入到某一个元素的前面
        父元素.insertBefore( 新元素, 旧元素 );
        // 将 新元素 插入到 旧元素 的前面
        
    3. 其他
      • style 的操作
      • setAttribute( 属性名, 属性值 )

    1.3. 删除

    1. 删除元素
      • removeChild
      • removeAttributeNode

    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;

    每天进步一点,遇见更好的你!
  • 相关阅读:
    数组字典
    字符串创建
    不可变数组
    数组
    纯净控制台
    可变字典
    数组Array
    id NSObject instanceType 区别
    可变字符串 插入,删除,替换,赋值
    查询字符串中某部分的字符串
  • 原文地址:https://www.cnblogs.com/ganiner/p/11518465.html
Copyright © 2011-2022 走看看