JS DOM之DOM遍历

简介: 1.什么是DOM遍历?DOM遍历,可以简单地理解为“查找元素”。举个例子,如果你使用getElementById()等方法获取一个元素,然后又想得到该元素的父元素、子元素,甚至是下一个兄弟元素,这种操作涉及的就是DOM遍历2.查找父元素在JavaScript中,我们可以使用parentNode属性来获得某个元素的父元素


1.什么是DOM遍历?


DOM遍历,可以简单地理解为“查找元素”。举个例子,如果你使用getElementById()等方法获取一个元素,然后又想得到该元素的父元素、子元素,甚至是下一个兄弟元素,这种操作涉及的就是DOM遍历


2.查找父元素


在JavaScript中,我们可以使用parentNode属性来获得某个元素的父元素


实例:


<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>TEXT</title>
    <style type="text/css">
        #box {
            width: 100px;
            height: 100px;
            background-color: hotpink;
        }
        #fatherBox {
            width: 200px;
            height: 200px;
            background-color: red;
        }
    </style>
    <script src="js/index.js"></script>
</head>
<body>
    <div id="fatherBox">
        父元素内容
        <div id="box">
        </div>
    </div>
    <input type="button" value="点击变化" id="btn"/>
</body>
</html>


window.onload=function () {
  var oBtn = document.getElementById("btn");
  var oBox = document.getElementById("box");
  var oParentBox = oBox.parentNode;
  oBtn.onclick = function() {
    oParentBox.style.backgroundColor = "orange";
  };
}


初始的内容:


74f4739c4b274d3a94f1b3c457bf02c6.png


点击按钮之后发生了变色:


327fb9f28a674413a1ac1d2750d9d229.png


3.查找子元素


在JavaScript中,我们可以使用以下两组方式来获得父元素中的所有子元素或某个子元素。


childNodes、firstChild、lastChild
children、firstElementChild、lastElementChild


其中,childNodes获取的是所有的子节点。注意,这个子节点是包括元素节点以及文本节点的。(不常用)

而children获取的是所有的元素节点,不包括文本节点。

实例:


<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
<script>
     window.onload=function()
     {
         var oBtn=document.getElementById("btn");
         var oUl=document.getElementById("list");
         oBtn.onclick=function()
         {
             oUl.removeChild(oUl.lastElementChild);
         }
     }
</script>
</head>
<body>
<ul id="list">
     <li>HTML</li>
     <li>CSS</li>
     <li>JavaScript</li>
     <li>jQuery</li>
     <li>Vue.js</li>
</ul>
<input id="btn" type="button" value="删除" />
</body>
</html>


firstElementChild获取的是第一个子元素节点,lastElementChild获取的是最后一个子元素节点。如果我们想要获取任意一个子元素节点,可以使用children[i]的方式来实现


4.查找兄弟元素


在JavaScript中,我们可以使用以下2组方式来获得兄弟元素。


previousSibling、nextSibling
previousElementSibling、nextElementSibling


previousSibling用于查找前一个兄弟节点,nextSibling用于查找后一个兄弟节点。previousElementSibling用于查找前一个兄弟元素节点,nextElementSibling用于查找后一个兄弟元素节点

跟查找子元素的两组方式一样,previousSibling和nextSibling查找出来的可能是文本节点(一般是空白节点),因此如果只操作元素节点,建议使用previousElementSibling和nextElementSibling

案例:


<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
    <script>
         window.onload=function()
         {
             var oBtn=document.getElementById("btn");
             var oUl=document.getElementById("list");
             oBtn.onclick=function()
             {
                var preElement=oUl.children[2].previousElementSibling;
                oUl.removeChild(preElement);
             };
        }
    </script>
</head>
<body>
    <ul id="list">
         <li>HTML</li>
         <li>CSS</li>
         <li>JavaScript</li>
         <li>jQuery</li>
         <li>Vue.js</li>
    </ul>
    <input id="btn" type="button" value="删除" />
</body>
</html>
目录
相关文章
|
23天前
|
JavaScript 前端开发 Go
CSS 与 JS 对 DOM 解析和渲染的影响
【10月更文挑战第16天】CSS 和 JS 会在一定程度上影响 DOM 解析和渲染,了解它们之间的相互作用以及采取适当的优化措施是非常重要的。通过合理的布局和加载策略,可以提高网页的性能和用户体验,确保页面能够快速、流畅地呈现给用户。在实际开发中,要根据具体情况进行权衡和调整,以达到最佳的效果。
|
9天前
|
JavaScript 前端开发 索引
js中DOM的基础方法
【10月更文挑战第31天】这些DOM基础方法是操作网页文档结构和实现交互效果的重要工具,通过它们可以动态地改变页面的内容、样式和行为,为用户提供丰富的交互体验。
|
10天前
|
JavaScript 前端开发 开发者
.js的dom元素操作
【10月更文挑战第29天】通过灵活运用这些 DOM 元素操作方法,JavaScript 可以实现丰富的网页交互效果,如动态更新页面内容、响应用户操作、创建和删除页面元素等。在实际开发中,开发者可以根据具体的需求和场景,选择合适的 DOM 元素操作方法来实现所需的功能,为用户提供更加流畅和动态的网页体验。
|
1月前
|
XML JavaScript 数据格式
XML DOM 遍历节点树
XML DOM 遍历节点树
|
1月前
|
移动开发 JavaScript 前端开发
原生js如何获取dom元素的自定义属性
原生js如何获取dom元素的自定义属性
42 4
|
1月前
|
XML JavaScript 数据格式
XML DOM 遍历节点树
XML DOM 遍历节点树
|
1月前
|
JavaScript
js之遍历方法
js之遍历方法
10 0
|
1月前
|
JavaScript 前端开发 容器
js之dom学习
js之dom学习
32 0
|
1月前
|
JavaScript
DOM 节点列表长度(Node List Length)
DOM 节点列表长度(Node List Length)
|
22天前
|
JavaScript
HTML DOM 节点树
HTML DOM 节点是指在 HTML 文档对象模型中,文档中的所有内容都被视为节点。整个文档是一个文档节点,每个 HTML 元素是元素节点,元素内的文本是文本节点,属性是属性节点,注释是注释节点。DOM 将文档表示为节点树,节点之间有父子和同胞关系。