JavaScript-DOM-获取节点父、兄、子节点or元素

  • Post author:
  • Post category:java




JavaScript-DOM-获取节点父、兄、子节点or元素

首先先来解释一下节点与元素的区别,不然真的会看的很懵啊!

什么是节点?

DOM规定:整个文档是一个文档节点,每个标签就是一个元素节点,也就是我们这里所说的元素,元素包含的文本是文本节点,元素的属性是属性节点,注释属于注释节点,等等这些都称之为节点。

那什么是元素?

元素就是节点中的元素节点,也就是文档中的标签。

上一篇文章中介绍了

document对象访问元素的三种方法

。那当我们获取到相应的元素对象后又想获得其父、兄、子节点or元素的信息该当如何获取?那接下来就分别来介绍一下都有哪些方法及属性可以帮我们获取想要的信息。



获取子节点
方法/属性 描述
getElementsByTagName() 返回当前节点的指定标签名后代节点
childNodes 返回当前节点的所有子节点(是一个nodeList类数组对象,使用Array.prototype.slice()方法可以转换为数组,就可以调用数组的相关方法)
firstChild 返回当前节点的首个子节点
lastChild 返回当前节点的最后一个子节点


获取父兄节点
属性 描述
parentNode 返回当前节点的父节点
previousSibling 返回当前节点的前一兄弟节点
nextSibling 返回当前节点的后一兄弟节点


获取子元素
属性 描述
childElementCount 返回当前元素的子元素个数
children 返回当前元素的所有子元素
firstElementChild 返回第一个子元素
lastElementChild 返回最后一个子元素


获取兄弟元素
属性 描述
previousElementSibling 返回当前元素的前一兄弟元素
nextElementSibling 返回当前元素的后一兄弟元素



亲自试一试

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>DOM-元素节点示例</title>
        <script>
            window.onload = function(){
                let demo1=document.getElementById('demo1');
                // nextSibling属性获取下一个相邻节点
                let next = demo1.nextSibling;
                // 这里demo1的下一相邻节点为换行,所以打印信息为undefined
                console.log(next.innerText);
                // nextSibling属性获取下一个相邻元素
                let nextElement = demo1.nextElementSibling;
                // 这里demo1的下一相邻节点为换行,所以打印信息为“欲穷千里目”
                console.log(nextElement.innerText);
            }
        </script>
    </head>
    <body>
        <ul>
            <li>白日依山尽</li>
            <li id="demo1">黄河入海流</li>
            <li>欲穷千里目</li>
            <li>更上一层楼</li>
        </ul>
    </body>
</html>