114_js笔记16_节点元素的dom操作 + HTMLCollection + NodeList

本文详细介绍了如何使用DOM API进行网页元素的创建、插入、删除、替换,以及如何使用HTMLCollection和NodeList对象遍历和操作元素集合。涵盖了appendChild(), insertBefore(), removeChild(), replaceChild()等方法的使用实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 一,创建新的 HTML 元素 (节点) - appendChild()

    • //标签
      <div id="div1">
          <p id="p1">这是一个段落。</p>
          <p id="p2">这是另外一个段落。</p>
      </div>
      
      //dom操作
              //为 <p> 元素添加文本节点:
              var para = document.createElement("p");
              //将文本节点添加到 <p> 元素中:
              var node = document.createTextNode("这是一个新的段落1。");
              //最后,在一个已存在的元素中添加 p 元素。
              para.appendChild(node);
              //最后,在一个已存在的元素中添加 p 元素。查找已存在的元素:
              var element = document.getElementById("div1");
              //最后,在一个已存在的元素中添加 p 元素。添加到已存在的元素中:
              element.appendChild(para);

       

  • 二,创建新的 HTML 元素 (节点) - insertBefore()

    • var para1 = document.createElement("p");
              var node1 = document.createTextNode("这是一个新的段落2。");
              para1.appendChild(node1);
              var element1 = document.getElementById("div1");
              var child1 = document.getElementById("p1");
              element1.insertBefore(para1, child1);   

       

  • 三,移除已存在的元素(节点) - removeChild()

    • //查找 id="div1" 的元素:
              var parent = document.getElementById("div1");
              //查找 id="p1" 的 <p> 元素:
              var child = document.getElementById("p1");
              //从父元素中移除子节点:
              parent.removeChild(child);

       

  • 四,替换 HTML 元素(节点) - replaceChild()

    •  var para2 = document.createElement("p");
              var node2 = document.createTextNode("这是一个新的段落3。");
              para2.appendChild(node2);
              
              var parent2 = document.getElementById("div1");
              var child2 = document.getElementById("p2");
              parent.replaceChild(para2, child2);

       

  • 五,HTMLCollection 对象

    • 1,getElementsByTagName() 方法返回 HTMLCollection 对象。
      • var myCollection = document.getElementsByTagName("p");
    • 2,集合中的元素可以通过索引(以 0 为起始位置)来访问。
      • myCollection[1]
    • 3,HTMLCollection 对象的 length 属性定义了集合中元素的数量
      • myCollection.length
    • 4,遍历元素个数
      • var myCollection = document.getElementsByTagName("p");
        var i;
        for (i = 0; i < myCollection.length; i++) {
            myCollection[i].style.backgroundColor = "red";
        }

         

    • 5,注意:
      • HTMLCollection 不是一个数组!
      • 可以像数组一样,使用索引来获取元素
  • 六,NodeList对象

    • 1,所有浏览器的  childNodes 属性返回的是 NodeList 对象
      • var myNodeList = document.childNodes;
    • 2,大部分浏览器的 querySelectorAll() 返回 NodeList 对象
      • var myNodeList = document.querySelectorAll("p");
    • 3,一些旧版本浏览器中的方法(如:getElementsByClassName())返回的是 NodeList 对象,而不是 HTMLCollection 对象
    • 4,NodeList 中的元素可以通过索引(以 0 为起始位置)来访问
      • y = myNodeList[1]
    • 5,NodeList 对象 length 属性定义了节点列表中元素的数量
      • myNodelist.length
    • 6,遍历元素
      • var myNodelist = document.querySelectorAll("p");
        var i;
        for (i = 0; i < myNodelist.length; i++) {
            myNodelist[i].style.backgroundColor = "red";
        }

         

  • 七,HTMLCollection 与 NodeList 的区别

    • 相同点:
      • NodeList 与 HTMLCollection 有很多类似的地方。 
      • NodeList 与 HTMLCollection 都与数组对象有点类似,可以使用索引 (0, 1, 2, 3, 4, ...) 来获取元素。
      • NodeList 与 HTMLCollection 都有 length 属性。
      • HTMLCollection 元素可以通过 name,id 或索引来获取
      • 无法使用数组的方法: valueOf(), pop(), push(), 或 join()
    • 不同点:
      • HTMLCollection 是 HTML 元素的集合;NodeList 是一个文档节点的集合。
      • NodeList 只能通过索引来获取;HTMLCollection 元素可以通过 name,id 或索引来获取
      • 只有 NodeList 对象有包含属性节点和文本节点

 

 

    •  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值