JS遍历DOM文档树的方法实例详解


Posted in Javascript onApril 03, 2018

本文实例讲述了JS遍历DOM文档树的方法。分享给大家供大家参考,具体如下:

一 介绍

遍历文档树通过使用parentNode属性、firstChild属性、lastChild属性、previousSibling属性和nextSibling属性来实现。

1、parentNode属性

该属性返回当前节点的父节点。

[pNode=]obj.parentNode

pNode:该参数用来存储父节点,如果不存在父节点将返回“null”。

2、firstChild属性

该属性返回当前节点的第一个子节点。

[cNode=]obj.firstChild

cNode:该参数用来存储第一个子节点,如果不存在将返回“null”。

3、lastChild属性

该属性返回当前节点的最后一个子节点。

[cNode=]obj.lastChild

cNode:该参数用来存储最后一个子节点,如果不存在将返回“null”。

4、previousSibling属性

该属性返回当前节点的前一个兄弟节点。

[sNode=]obj.previousSibling

sNode:该参数用来存储前一个兄弟节点,如果不存在将返回“null”。

5、nextSibling属性

该属性返回当前节点的后一个兄弟节点。

[sNode=]obj.nextSibling

sNode:该参数用来存储后一个兄弟节点,如果不存在将返回“null”。

二 应用

遍历文档树,在页面中,通过相应的按钮可以查找到文档的各个节点的名称、类型和节点值。

三 代码

<head>
<title>遍历文档树</title>
</head>
<body >
<h3 id="h1">三号标题</h3>
<b>加粗内容</b>
<form name="frm" action="#" method="get">
节点名称:<input type="text" id="na"/><br />
节点类型:<input type="text" id="ty"/><br />
节点的值:<input type="text" id="va"/><br />
<input type="button" value="父节点" onclick="txt=nodeS(txt,'parent');"/>
<input type="button" value="第一个子节点" onclick="txt=nodeS(txt,'firstChild');"/>
<input type="button" value="最后一个子节点" onclick="txt=nodeS(txt,'lastChild');"/><br>
<input name="button" type="button" onclick="txt=nodeS(txt,'previousSibling');" value="前一个兄弟节点"/>
<input type="button" value="最后一个兄弟节点" onclick="txt=nodeS(txt,'nextSibling');"/>
<input type="button" value="返回根节点" onclick="txt=document.documentElement;txtUpdate(txt);"/>
</form>
<script language="javascript">
<!--
function txtUpdate(txt)
{
 window.document.frm.na.value=txt.nodeName;
 window.document.frm.ty.value=txt.nodeType;
 window.document.frm.va.value=txt.nodeValue;
}
function nodeS(txt,nodeName)
{
switch(nodeName)
{
case"previousSibling":
if(txt.previousSibling)
{
 txt=txt.previousSibling;
}
else
 alert("无兄弟节点");
break;
case"nextSibling":
if(txt.nextSibling)
{
 txt=txt.nextSibling;
}
else
 alert("无兄弟节点");
break;
case"parent":
if(txt.parentNode)
{
 txt=txt.parentNode;
}
else
 alert("无父节点");
break;
case"firstChild":
if(txt.hasChildNodes())
{
 txt=txt.firstChild;
}
else
 alert("无子节点");
break;
case"lastChild":
if(txt.hasChildNodes())
{
 txt=txt.lastChild;
}
else
 alert("无子节点")
break;
}
 txtUpdate(txt);
return txt;
}
var txt=document.documentElement;
 txtUpdate(txt);
-->
</script>
</body>

四 运行结果

JS遍历DOM文档树的方法实例详解

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
Array对象方法参考
Oct 03 Javascript
怎么让脚本或里面的函数在所有图片都载入完毕的时候执行
Oct 17 Javascript
JS、jquery实现几分钟前、几小时前、几天前等时间差显示效果的代码实例分享
Apr 11 Javascript
JS实现点击颜色块切换指定区域背景颜色的方法
Feb 25 Javascript
JavaScript中的toLocaleLowerCase()方法使用详解
Jun 06 Javascript
Bootstrap教程JS插件弹出框学习笔记分享
May 17 Javascript
AngularJS中实现动画效果的方法
Jul 28 Javascript
JavaScript学习小结之被嫌弃的eval函数和with语句实例详解
Aug 01 Javascript
JS实现保留n位小数的四舍五入问题示例
Aug 03 Javascript
Mac下使用charles遇到的问题以及解决办法
Jan 10 Javascript
微信小程序实现文字跑马灯
May 26 Javascript
JavaScript的垃圾回收机制与内存管理
Aug 06 Javascript
JavaScript同源策略和跨域访问实例详解
Apr 03 #Javascript
vue 组件中slot插口的具体用法
Apr 03 #Javascript
react 实现页面代码分割、按需加载的方法
Apr 03 #Javascript
深入浅析Vue中的slots/scoped slots
Apr 03 #Javascript
使用FileReader API创建Vue文件阅读器组件
Apr 03 #Javascript
vue内置指令详解
Apr 03 #Javascript
详解在React里使用&quot;Vuex&quot;
Apr 02 #Javascript
You might like
mysql_fetch_assoc和mysql_fetch_row的功能加起来就是mysql_fetch_array
2007/01/15 PHP
php的crc32函数使用时需要注意的问题(不然就是坑)
2015/04/21 PHP
php实现网站顶踩功能的完整前端代码
2015/07/19 PHP
教大家制作简单的php日历
2015/11/17 PHP
php curl模拟post请求和提交多维数组的示例代码
2015/11/19 PHP
Prototype String对象 学习
2009/07/19 Javascript
Javascript实现真实字符串剩余字数提示的实例代码
2013/10/22 Javascript
JavaScript中数组去除重复的三种方法
2016/04/22 Javascript
使用jQuery制作浮动工具栏的实例分享
2016/05/13 Javascript
react.js 翻页插件实例代码
2017/01/19 Javascript
JS实现身份证输入框的输入效果
2017/08/21 Javascript
three.js实现3D视野缩放效果
2017/11/16 Javascript
seajs下require书写约定实例分析
2018/05/16 Javascript
JavaScript深拷贝和浅拷贝概念与用法实例分析
2018/06/07 Javascript
vue使用ajax获取后台数据进行显示的示例
2018/08/09 Javascript
解决vue 打包发布去#和页面空白的问题
2018/09/04 Javascript
探秘vue-rx 2.0(推荐)
2018/09/21 Javascript
小程序如何自主实现拦截器的示例代码
2019/11/04 Javascript
浅析vue-router实现原理及两种模式
2020/02/11 Javascript
vue 中的动态传参和query传参操作
2020/11/09 Javascript
Python 序列化 pickle/cPickle模块使用介绍
2014/11/30 Python
Python3读取zip文件信息的方法
2015/05/22 Python
Python获取二维矩阵每列最大值的方法
2018/04/03 Python
numpy 计算两个数组重复程度的方法
2018/11/07 Python
pandas通过loc生成新的列方法
2018/11/28 Python
python批量修改文件夹及其子文件夹下的文件内容
2019/03/15 Python
python如何利用Mitmproxy抓包
2020/10/10 Python
CSS3圆角和渐变2种常用功能详解
2016/01/06 HTML / CSS
使用phonegap播放音频的实现方法
2017/03/31 HTML / CSS
俄罗斯和世界各地的酒店预订:Hotels.com俄罗斯
2016/08/19 全球购物
联想中国官方商城:Lenovo China
2017/10/18 全球购物
英国在线女鞋目的地:SIMMI
2018/12/27 全球购物
2014年上半年工作自我评价
2014/01/18 职场文书
差生评语大全
2014/05/04 职场文书
劳动保障个人工作总结
2015/03/04 职场文书
2015年信息宣传工作总结
2015/05/26 职场文书