web前端学习(四十二)——JavaScript DOM元素(添加、移除及替换)、DOM集合(Collection)、DOM节点列表(NodeList)

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云原生内存数据库 Tair,内存型 2GB
云数据库 Redis 版,经济版 1GB 1个月
简介: web前端学习(四十二)——JavaScript DOM元素(添加、移除及替换)、DOM集合(Collection)、DOM节点列表(NodeList)

1.DOM元素的相关操作方法


方法

描述

getElementById()

返回带有指定 ID 的元素。

getElementsByTagName()

返回包含带有指定标签名称的所有元素的节点列表(集合/节点数组)。

getElementsByClassName()

返回包含带有指定类名的所有元素的节点列表。

appendChild()

把新的子节点添加到指定节点。

removeChild()

删除子节点。

replaceChild()

替换子节点。

insertBefore()

在指定的子节点前面插入新的子节点。

createAttribute()

创建属性节点。

createElement()

创建元素节点。

createTextNode()

创建文本节点。

getAttribute()

返回指定的属性值。

setAttribute()

把指定属性设置或修改为指定的值。

1.1 创建新的 HTML 元素 (节点) - appendChild()

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <title>JS简单学习</title>
  </head>
  <body>
    <div id="div1">
      <p id="p1">这是一个段落。</p>
      <p id="p2">这是另外一个段落。</p>
    </div>
    <script type="text/javascript">
      //创建 <p></p> 元素
      var para=document.createElement("p");
      //为 <p></p> 元素创建一个新的文本节点
      var node=document.createTextNode("这是一个新的段落。");
      //将文本节点添加到 <p></p> 元素中
      para.appendChild(node);
      //查找已存在的元素 <div></div>
      var element=document.getElementById("div1");
      //把新创建的 <p></p> 元素添加到已存在的元素 <div></div> 中
      element.appendChild(para);
    </script>
  </body>
</html>

1.2 创建新的 HTML 元素 (节点) - insertBefore()

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>JS简单学习</title>
  </head>
  <body>
    <div id="div1">
      <p id="p1">这是一个段落。</p>
      <p id="p2">这是另外一个段落。</p>
    </div>
    <script type="text/javascript">
      //创建 <p></p> 元素
      var para=document.createElement("p");
      //为 <p></p> 元素创建一个新的文本节点
      var node=document.createTextNode("这是一个新的段落。");
      //将文本节点添加到 <p></p> 元素中
      para.appendChild(node);
      //查找已存在的父元素 <div></div>
      var element=document.getElementById("div1");
      //查找已存在的子元素 <p></p>
      var child=document.getElementById("p1");
      //在div模块中,将新创建的 para 元素添加到 child 元素之前
      element.insertBefore(para,child);
    </script>
  </body>
</html>

1.3 移除已存在的HTML 元素 - removeChild()

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>JS简单学习</title>
  </head>
  <body>
    <div id="div1">
      <p id="p1">这是一个段落。</p>
      <p id="p2">这是另外一个段落。</p>
    </div>
    <script type="text/javascript">
      var parent=document.getElementById("div1");
      var child=document.getElementById("p1");
      //从父元素 <div> 中移除 id="p1" 的子元素 <p>
      parent.removeChild(child);
    </script>
  </body>
</html>

1.4 替换 HTML 元素 - replaceChild()

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>JS简单学习</title>
  </head>
  <body>
    <div id="div1">
      <p id="p1">这是一个段落。</p>
      <p id="p2">这是另外一个段落。</p>
    </div>
    <script type="text/javascript">
      var para=document.createElement("p");
      var node=document.createTextNode("这是一个新的段落。");
      para.appendChild(node);
      var parent=document.getElementById("div1");
      var child=document.getElementById("p1");
      //在div模块中,将新创建的 para 元素替换掉 child 元素
      parent.replaceChild(para,child);
    </script>
  </body>
</html>

 

2.DOM集合(Collection)


getElementsByTagName()方法返回 HTMLCollection 对象。

HTMLCollection对象类似包含 HTML 元素的一个数组HTMLCollection 对象的 length 属性定义了集合中元素的数量。(常用于遍历集合中的元素)

注意:HTMLCollection 不是一个数组!

HTMLCollection看起来可能是一个数组,但其实不是。你可以像数组一样,使用索引( 0 为起始位置)来访问获取元素。

HTMLCollection无法使用数组的方法: valueOf(), pop(), push(), join()

2.1 实例一:通过索引访问元素、使用length属性 

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>JS简单学习</title>
  </head>
  <body>
    <h2>JavaScript HTML DOM</h2>
    <p>Hello World!!!</p> 
    <p>Hello Redis!!!</p> 
    <p id="demo"></p>
    <script type="text/javascript">
      var myCollection=document.getElementsByTagName("p");
      document.getElementById("demo").innerHTML=
        "第二个段落的内容为: <span style='color: red;'>" + myCollection[1].innerHTML + "</span>";
      document.write("文档包含" + myCollection.length + " 个段落。");
    </script>
  </body>
</html>

2.2 实例二:通过length属性对集合进行遍历

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>JS简单学习</title>
  </head>
  <body>
    <h2>JavaScript HTML DOM</h2>
    <p>Hello World!!!</p> 
    <p>Hello Redis!!!</p>
    <p>点击按钮修改 p 元素的字体颜色。</p>
    <button type="button" onclick="myFunction()">点击这里</button>
    <script type="text/javascript">
      function myFunction() {
        var myCollection=document.getElementsByTagName("p");
        for(var i=0;i<myCollection.length;i++) {
          myCollection[i].style.color="red";
        }
      }
    </script>
  </body>
</html>

3.DOM节点列表(NodeList)


NodeList 对象是一个从文档中获取的节点列表 (集合) NodeList 对象类似 HTMLCollection 对象。


一些旧版本浏览器中的方法(如:getElementsByClassName())返回的是 NodeList 对象,而不是 HTMLCollection对象。


所有浏览器的childNodes属性返回的是 NodeList 对象。大部分浏览器的querySelectorAll()返回 NodeList 对象。


NodeList对象 length 属性定义了节点列表中元素的数量。

NodeList是一个文档节点的集合。


NodeList HTMLCollection有很多类似的地方。

NodeList HTMLCollection都与数组对象有点类似,可以使用索引 (0, 1, 2, 3, 4, ...) 来获取元素。


NodeList HTMLCollection都有length 属性。

HTMLCollection元素可以通过 nameid 或索引来获取。

NodeList只能通过索引来获取。只有 NodeList 对象有包含属性节点和文本节点。

节点列表不是一个数组!节点列表看起来可能是一个数组,但其实不是。你可以像数组一样,使用索引来获取元素。(以 0 为起始位置来访问)

节点列表无法使用数组的方法: valueOf(), pop(), push(), join()

3.1 实例一:通过索引访问元素、使用length属性  

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>JS简单学习</title>
  </head>
  <body>
    <h2>JavaScript HTML DOM</h2>
    <p>Hello World!!!</p> 
    <p>Hello Redis!!!</p> 
    <p id="demo"></p>
    <script type="text/javascript">
      var myNodelist=document.querySelectorAll("p");
      document.getElementById("demo").innerHTML=
        "第二个段落的内容为: <span style='color: red;'>" + myNodelist[1].innerHTML + "</span>";
      document.write("文档包含 " + myNodelist.length + " 个段落。");
    </script>
  </body>
</html>

3.2 实例二:通过length属性对节点列表进行遍历

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>JS简单学习</title>
  </head>
  <body>
    <h2>JavaScript HTML DOM</h2>
    <p>Hello World!!!</p> 
    <p>Hello Redis!!!</p>
    <p>点击按钮修改 p 元素的字体颜色。</p>
    <button type="button" onclick="myFunction()">点击这里</button>
    <script type="text/javascript">
      function myFunction() {
        var myNodelist=document.querySelectorAll("p");
        for(var i=0;i<myNodelist.length;i++) {
          myNodelist[i].style.color="red";
        }
      }
    </script>
  </body>
</html>

 

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
17天前
|
JavaScript
DOM 节点列表长度(Node List Length)
`length`属性用于获取DOM节点列表的长度,即节点数量。通过遍历这个属性,可以访问和处理所有节点。例如,示例代码加载&quot;books.xml&quot;,获取所有&quot;title&quot;节点,并依次输出它们的第一个子节点的值。
|
21天前
|
JavaScript
DOM 节点列表长度(Node List Length)
`length`属性用于获取DOM节点列表的元素数量。在示例中,代码加载&quot;books.xml&quot;,然后通过`getElementsByTagName(&quot;title&quot;)`获取所有标题节点。使用`for`循环遍历这些节点,输出每个标题的文本内容。
|
1天前
|
JavaScript
DOM 节点列表长度(Node List Length)
`length`属性定义了节点列表的长度(即节点数量)。可通过此属性遍历节点列表。
|
3天前
|
XML JavaScript 数据格式
DOM 节点列表长度(Node List Length)
`length`属性表示DOM节点列表的长度。在示例中,通过加载&quot;books.xml&quot;到`xmlDoc`,并使用`getElementsByTagName(&quot;title&quot;)`获取所有标题节点,然后利用`for`循环遍历整个节点列表,每次迭代通过`childNodes[0].nodeValue`访问每个节点的第一个子节点的值并输出。此方法可用于处理XML或HTML文档中的节点列表。 **Markdown格式:** `length`属性表示DOM节点列表的长度。
|
9天前
|
JavaScript 前端开发 API
前端框架与库 - jQuery基础与DOM操作
【7月更文挑战第18天】jQuery 是一个简化JavaScript任务的库,以其“write less, do more”理念著称。核心功能包括DOM操作、事件处理和Ajax。DOM操作如选择元素(`$(&quot;p&quot;)`、`$(&quot;#myDiv&quot;)`、`$(&quot;.myClass&quot;)`)、创建及添加元素、修改属性和内容。事件处理如绑定(`click`)和触发(`trigger`)。常见问题涉及`$`符号冲突(使用`jQuery`代替)、异步加载管理和选择器性能优化。了解并规避这些问题能提升jQuery使用效率。
|
19天前
|
JavaScript
DOM 节点列表长度(Node List Length)
`length`属性用于获取DOM节点列表的元素数量。通过遍历这个属性,如`for (i=0; i&lt;x.length; i++)`,可以访问和处理每个节点。在示例中,加载&quot;books.xml&quot;,然后获取所有&quot;&lt;title&gt;&quot;标签,并输出它们的子节点值。
|
22天前
|
前端开发 JavaScript Linux
若依修改之后,无法访问前端项目如何解决,只能访问后端的接口,我的接口8083,端不显示咋解决?在vue.config.js文件中的映射路径要跟后端匹配,到软件商店里找到Ngnix配置代理,设80不用加
若依修改之后,无法访问前端项目如何解决,只能访问后端的接口,我的接口8083,端不显示咋解决?在vue.config.js文件中的映射路径要跟后端匹配,到软件商店里找到Ngnix配置代理,设80不用加
|
25天前
|
前端开发 JavaScript API
只会用插件可不行,这些前端动画技术同样值得收藏-JavaScript篇(下)
只会用插件可不行,这些前端动画技术同样值得收藏-JavaScript篇(下)
18 0
|
25天前
|
监控 JavaScript 前端开发
只会用插件可不行,这些前端动画技术同样值得收藏-JavaScript篇(上)
只会用插件可不行,这些前端动画技术同样值得收藏-JavaScript篇(上)
20 0
|
25天前
|
JavaScript
DOM 节点列表长度(Node List Length)
`length`属性用于获取DOM节点列表的元素数量。在示例中,代码加载&quot;books.xml&quot;,然后通过`getElementsByTagName(&quot;title&quot;)`获取所有标题节点。使用`for`循环遍历这些节点,输出每个标题的文本内容。