JavaScript中parentNode与parentElement的区别及使用

作者:像素猫

时间:2026-10-30

浏览:334

本文详解JavaScript中获取HTML元素父节点的两种常用方法:parentNode与parentElement。重点阐述parentNode符合W3C标准,兼容性优于仅IE支持的parentElement。通过嵌套DOM结构的代码示例,演示如何利用parentNode逐级向上查找祖先节点,并说明其在跨浏览器开发中的推荐用法。

文章目录

parentNode与parentElement的区别

在JavaScript DOM操作中,parentNode和parentElement的作用相同,均用于获取父节点;同理,childNodes和children也功能一致。然而,parentNode和childNodes遵循W3C标准,具有更好的通用性和跨浏览器兼容性。相比之下,parentElement和children并非W3C标准的一部分,仅在IE浏览器中得到支持,Firefox等浏览器并不支持,因此在实际开发中应优先使用符合标准的属性。

具体应用示例如下:

parentNode属性常用于获取指定元素的直接父节点。可以将parentElement视为一个容器,其中包含子节点。例如,在一个HTML结构中,存在一个父容器和一个子元素,如下所示:

基本父节点获取示例


<div id="parent">
<b id="child">My text</b>
</div>

在上述代码结构中,我们将id为parent的div视为容器,其中包含一个id为child的粗体文本元素。若使用getElementById()方法获取该子元素,并通过parentNode属性查询其父节点,返回的结果将是该div元素。演示脚本如下:


<script type="text/javascript">
<!--

alert(document.getElementById"child").parentNode.nodeName);

//-->
</script>

使用parentNode并不局限于查找直接的父节点,子节点本身也可以作为父节点继续向上查找。例如在嵌套结构中:

嵌套结构中查找祖先节点


<div id="parent">
<div id="childparent">
<b id="child">My text</b>
</div>
</div>

上述代码包含两层嵌套关系。最外层的div(id为parent)是内层div(id为childparent)的父节点,而id为child的粗体元素则是childparent的子节点。若要访问最外层的父节点(即“爷爷”节点id为parent),需进行链式调用,具体方法如下:


<script type="text/javascript">
<!--

alert(document.getElementById("child").parentNode.parentNode.nodeName);


//-->
</script>

注意此处连续使用了两次parentNode,即parentNode.parentNode。第一次调用返回id为childparent的div节点,第二次调用则进一步获取其父节点,即最外层的id为parent的div。

跨浏览器兼容性建议

使用parentNode不仅能获取节点的nodeName,还能访问父节点下的其他子元素。例如,可以获取包含大量子元素的父节点,并在其末尾添加新节点。虽然IE提供了parentElement属性,但为了确保跨浏览器脚本的兼容性,建议统一使用parentNode。

以上关于JavaScript中HTML元素父节点与子节点操作的简要介绍到此结束,希望能为读者提供有价值的参考。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章