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 相关文章推荐
jQuery EasyUI NumberBox(数字框)的用法
Jul 08 Javascript
flash遮住div问题的正确解决方法
Feb 27 Javascript
js识别不同浏览器基于userAgent做判断
Jul 29 Javascript
jQuery及JS实现循环中暂停的方法
Feb 02 Javascript
js实现鼠标感应向下滑动隐藏菜单的方法
Feb 20 Javascript
javascript实现当前页导航激活的方法
Feb 27 Javascript
javascript每日必学之多态
Feb 23 Javascript
vue2.0与bootstrap3实现列表分页效果
Nov 28 Javascript
小程序云开发初探(小结)
Oct 24 Javascript
javascript中数组的常用算法深入分析
Mar 12 Javascript
Node4-5静态资源服务器实战以及优化压缩文件实例内容
Aug 29 Javascript
vue实现图片懒加载的方法分析
Feb 05 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
解析thinkphp基本配置 convention.php
2013/06/18 PHP
PHP XML和数组互相转换详解
2016/10/26 PHP
浅说js变量
2011/05/25 Javascript
基于jquery插件制作左右按钮与标题文字图片切换效果
2013/11/07 Javascript
jQuery控制TR显示隐藏的几种方法
2014/06/18 Javascript
JavaScript实现的一个计算数字步数的算法分享
2014/12/06 Javascript
JavaScript中的包装对象介绍
2015/01/27 Javascript
jquery滚动加载数据的方法
2015/03/09 Javascript
Javascript编写俄罗斯方块思路及实例
2015/07/07 Javascript
Web性能优化系列 10个提升JavaScript性能的技巧
2016/09/27 Javascript
JS中检测数据类型的几种方式及优缺点小结
2016/12/12 Javascript
bootstrap实现动态进度条效果
2017/03/08 Javascript
js单页hash路由原理与应用实战详解
2017/08/14 Javascript
vue中引入mxGraph的步骤详解
2019/05/17 Javascript
JS创建自定义对象的六种方法总结
2020/12/15 Javascript
[01:01]青春无憾,一战成名——DOTA2全国高校联赛开启
2018/02/25 DOTA
Python使用xlrd读取Excel格式文件的方法
2015/03/10 Python
Python中__new__与__init__方法的区别详解
2015/05/04 Python
python 上下文管理器使用方法小结
2017/10/10 Python
利用Python yagmail三行代码实现发送邮件
2018/05/11 Python
Python遍历字典方式就实例详解
2019/12/28 Python
Python Numpy 控制台完全输出ndarray的实现
2020/02/19 Python
python实现简单学生信息管理系统
2020/04/09 Python
python针对Oracle常见查询操作实例分析
2020/04/30 Python
python实现PDF中表格转化为Excel的方法
2020/06/16 Python
详解如何使用Pytest进行自动化测试
2021/01/14 Python
HTML5 Canvas 绘图——使用 Canvas 绘制图形图文教程 使用html5 canvas 绘制精美的图
2015/08/31 HTML / CSS
舞会礼服和舞会鞋:PromGirl
2019/04/22 全球购物
优秀的茶餐厅创业计划书
2014/01/03 职场文书
高中生自我评语大全
2014/01/19 职场文书
高中自我评价范文
2014/01/27 职场文书
会计电算化专业自荐信
2014/03/15 职场文书
岗位工作说明书
2014/07/29 职场文书
2014年会计个人工作总结
2014/11/24 职场文书
通报表扬范文
2015/01/17 职场文书
小学四年级班务总结该怎么写?
2019/08/16 职场文书