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 相关文章推荐
善用事件代理,警惕闭包的性能陷阱。
Jan 20 Javascript
javascript学习笔记(三) String 字符串类型介绍
Jun 19 Javascript
javascript 表格内容排序 简单操作示例代码
Jan 03 Javascript
教你使用javascript简单写一个页面模板引擎
May 05 Javascript
浅谈JS中json数据的处理
Jun 30 Javascript
使用JQuery选择HTML遍历函数的方法
Sep 17 Javascript
用jQuery实现可输入多选下拉组合框实例代码
Jan 18 Javascript
three.js中文文档学习之如何本地运行详解
Nov 20 Javascript
JS实现的文字间歇循环滚动效果完整示例
Feb 13 Javascript
node.js实现http服务器与浏览器之间的内容缓存操作示例
Feb 11 Javascript
简单了解JavaScript作用域
Jul 31 Javascript
express异步函数异常捕获示例详解
Nov 30 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
基于数据库的在线人数,日访问量等统计
2006/10/09 PHP
php中批量修改文件后缀名的函数代码
2011/10/23 PHP
CodeIgniter输出中文乱码的两种解决办法
2014/06/12 PHP
phpmailer发送邮件之后,返回收件人是否阅读了邮件的方法
2014/07/19 PHP
如何让CI框架支持service层
2014/10/29 PHP
PHP使用mysqli操作MySQL数据库的简单方法
2017/02/04 PHP
解决Laravel blade模板转义html标签的问题
2019/09/03 PHP
JQuery FlexiGrid的asp.net完美解决方案 dotNetFlexGrid-.Net原生的异步表格控件
2010/09/12 Javascript
jQuery学习笔记之jQuery动画效果
2013/09/09 Javascript
javascript 循环调用示例介绍
2013/11/20 Javascript
关于vue.js弹窗组件的知识点总结
2016/09/11 Javascript
原生JS实现图片左右轮播
2016/12/30 Javascript
js实时监控文本框输入字数的实例代码
2018/01/18 Javascript
Vue.js 踩坑记之双向绑定
2018/05/03 Javascript
微信小程序实现即时通信聊天功能的实例代码
2018/08/17 Javascript
React router动态加载组件之适配器模式的应用详解
2018/09/12 Javascript
vue: WebStorm设置快速编译运行的方法
2018/10/18 Javascript
如何实现一个webpack模块解析器
2018/10/24 Javascript
实例讲解v-if和v-show的区别
2019/01/31 Javascript
详解如何用OpenCV + Python 实现人脸识别
2017/10/20 Python
基于Python socket的端口扫描程序实例代码
2018/02/09 Python
Python 中的Selenium异常处理实例代码
2018/05/03 Python
Python二叉搜索树与双向链表转换算法示例
2019/03/02 Python
Numpy对数组的操作:创建、变形(升降维等)、计算、取值、复制、分割、合并
2019/08/28 Python
如何用用Python将地址标记在地图上
2021/02/07 Python
基于HTML5 audio元素播放声音jQuery小插件
2011/05/11 HTML / CSS
美国知名的在线旅游服务网站:Priceline
2016/07/23 全球购物
Everlast官网:拳击、综合格斗和健身相关的体育用品
2020/08/03 全球购物
东方通信股份有限公司VC面试题
2014/08/27 面试题
应届毕业生通用的自荐书范文
2014/02/07 职场文书
心理学专业大学生职业生涯规划范文
2014/02/19 职场文书
2014年幼儿园保育工作总结
2014/12/02 职场文书
2015年感恩母亲节活动方案
2015/05/04 职场文书
在校学生证明格式
2015/06/24 职场文书
PyCharm配置KBEngine快速处理代码提示冲突、配置命令问题
2021/04/03 Python
世界十大儿童漫画书排名,法国国宝漫画排第五,第二是轰动日本连环
2022/03/18 欧美动漫