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 相关文章推荐
JavaScript面向对象设计二 构造函数模式
Dec 20 Javascript
javascript单引号和双引号的区别和处理
May 14 Javascript
jQuery删除一个元素后淡出效果展示删除过程的方法
Mar 18 Javascript
JavaScript编写检测用户所使用的浏览器的代码示例
May 05 Javascript
逻辑表达式中与或非的用法详解
Jun 06 Javascript
浅谈JS正则表达式的RegExp对象和括号的使用
Jul 28 Javascript
JavaScript中函数声明与函数表达式的区别详解
Aug 18 Javascript
react-router v4如何使用history控制路由跳转详解
Jan 09 Javascript
JS设计模式之命令模式概念与用法分析
Feb 06 Javascript
vue 使用Jade模板写html,stylus写css的方法
Feb 23 Javascript
Angular6 写一个简单的Select组件示例
Aug 20 Javascript
JS数组降维的实现Array.prototype.concat.apply([], arr)
Apr 28 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
德生S2000南麂列岛台湾FM收听记录
2021/03/02 无线电
PHP生成唯一订单号
2015/07/05 PHP
PHP+Mysql+jQuery查询和列表框选择操作实例讲解
2015/10/22 PHP
PHP array_reduce()函数的应用解析
2018/10/28 PHP
input 输入框内的输入事件详细分析
2010/03/17 Javascript
jQuery实现单行文字间歇向上滚动源代码
2013/06/02 Javascript
jquery获取radio值实例
2014/10/16 Javascript
Jquery结合HTML5实现文件上传
2015/06/25 Javascript
JavaScript中Form表单技术汇总(推荐)
2016/06/26 Javascript
Js调用Java方法并互相传参的简单实例
2016/08/11 Javascript
JS获取当前使用的浏览器名字以及版本号实现方法
2016/08/19 Javascript
微信小程序-滚动消息通知的实例代码
2017/08/03 Javascript
浅析vue-router jquery和params传参(接收参数)$router $route的区别
2018/08/03 jQuery
解决vue-cli项目webpack打包后iconfont文件路径的问题
2018/09/01 Javascript
jQuery动态操作表单示例【基于table表格】
2018/12/06 jQuery
vue前后分离调起微信支付
2019/07/29 Javascript
python socket多线程通讯实例分析(聊天室)
2016/04/06 Python
python面向对象多线程爬虫爬取搜狐页面的实例代码
2018/05/31 Python
python批量爬取下载抖音视频
2019/06/17 Python
python中not、and和or的优先级与详细用法介绍
2020/11/03 Python
Html5如何唤起百度地图App的方法
2019/01/27 HTML / CSS
HTML5单页面手势滑屏切换原理分析
2017/07/10 HTML / CSS
解析浏览器的一些“滚动”行为鉴赏
2019/09/16 HTML / CSS
Hotels.com香港酒店网:你的自由行酒店订房专家
2018/01/22 全球购物
KEEN美国官网:美国人气户外休闲鞋品牌
2021/03/09 全球购物
这段代码难道不该打印出56吗
2013/02/27 面试题
Java如何读取CLOB字段
2013/10/10 面试题
毕业生个人求职信范例分享
2013/12/17 职场文书
《可爱的动物》教学反思
2014/02/22 职场文书
小学关爱留守儿童活动方案
2014/08/25 职场文书
寒假安全保证书
2015/02/28 职场文书
生产车间管理制度
2015/08/04 职场文书
离婚财产分割协议书
2015/08/11 职场文书
Python基础学习之奇异的GUI对话框
2021/05/27 Python
JavaScript模拟实现网易云轮播效果
2022/04/04 Javascript
MySQL8.0 Undo Tablespace管理详解
2022/06/16 MySQL