原生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 用法?将元素插入到某一个元素的前面
      父元素.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;

转载于:https://www.cnblogs.com/hs610/p/9639286.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是原生DOM实现增删改查、全选反选的示例代码: ```html <!DOCTYPE html> <html> <head> <title>DOM增删改查、全选反选</title> </head> <body> <h3>DOM增删改查、全选反选示例</h3> <!-- 添加元素 --> <input type="text" id="add-input"> <button id="add-btn">添加</button> <!-- 显示元素列表 --> <ul id="list"></ul> <!-- 删除元素 --> <button id="delete-btn">删除</button> <!-- 修改元素 --> <input type="text" id="edit-input"> <button id="edit-btn">修改</button> <!-- 全选反选 --> <input type="checkbox" id="check-all"> <label for="check-all">全选/反选</label> <script> // 先获取相关的DOM元素 var addInput = document.getElementById('add-input'); var addBtn = document.getElementById('add-btn'); var list = document.getElementById('list'); var deleteBtn = document.getElementById('delete-btn'); var editInput = document.getElementById('edit-input'); var editBtn = document.getElementById('edit-btn'); var checkAll = document.getElementById('check-all'); // 添加元素 addBtn.onclick = function() { var text = addInput.value.trim(); if (text) { var li = document.createElement('li'); li.innerHTML = '<input type="checkbox"> ' + text; list.appendChild(li); addInput.value = ''; } }; // 删除元素 deleteBtn.onclick = function() { var checkboxes = list.getElementsByTagName('input'); for (var i = checkboxes.length - 1; i >= 0; i--) { if (checkboxes[i].checked) { list.removeChild(checkboxes[i].parentNode); } } }; // 修改元素 editBtn.onclick = function() { var checkboxes = list.getElementsByTagName('input'); for (var i = checkboxes.length - 1; i >= 0; i--) { if (checkboxes[i].checked) { var text = editInput.value.trim(); if (text) { checkboxes[i].parentNode.innerHTML = '<input type="checkbox"> ' + text; editInput.value = ''; } } } }; // 全选反选 checkAll.onclick = function() { var checkboxes = list.getElementsByTagName('input'); for (var i = checkboxes.length - 1; i >= 0; i--) { checkboxes[i].checked = checkAll.checked; } }; </script> </body> </html> ``` 这个示例实现了以下功能: 1. 输入框输入内容后,点击“添加”按钮可以将内容添加到列表中。 2. 点击“删除”按钮可以删除列表中选中的元素。 3. 输入框输入内容后,点击“修改”按钮可以将列表中选中的元素的文本修改为输入框中的内容。 4. 点击“全选/反选”复选框可以全选或反选列表中的所有元素。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值