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 相关文章推荐
兼容多浏览器的字幕特效Marquee的通用js类
Jul 20 Javascript
javascript parseInt与Number函数的区别
Jan 21 Javascript
HTML+CSS+JS实现完美兼容各大浏览器的TABLE固定列
Apr 26 Javascript
AngualrJS中的Directive制作一个菜单
Jan 26 Javascript
微信小程序 navigation API实例详解
Oct 02 Javascript
值得收藏的vuejs安装教程
Nov 21 Javascript
vue实现验证码输入框组件
Dec 14 Javascript
JS运动特效之同时运动实现方法分析
Jan 24 Javascript
详解浏览器缓存和webpack缓存配置
Jul 06 Javascript
jquery实现二级导航下拉菜单效果实例
May 14 jQuery
详解将微信小程序接口Promise化并使用async函数
Aug 05 Javascript
JS中队列和双端队列实现及应用详解
Sep 29 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
php 随机数的产生、页面跳转、件读写、文件重命名、switch语句
2009/08/07 PHP
PHP读取ACCESS数据到MYSQL的代码
2011/05/11 PHP
PHP超牛逼无限极分类生成树方法
2015/05/11 PHP
PHP Try-catch 语句使用技巧
2016/02/28 PHP
php 流程控制switch的简单实例
2016/06/07 PHP
各浏览器对click方法的支持差异小结
2011/07/31 Javascript
Javascript中call与apply的学习笔记
2014/09/22 Javascript
详解AngularJS中的表单验证(推荐)
2016/11/17 Javascript
Angular的模块化(代码分享)
2016/12/26 Javascript
原生JS仿QQ阅读点击展开、收起效果
2017/03/08 Javascript
创建简单的node服务器实例(分享)
2017/06/23 Javascript
前端主流框架vue学习笔记第二篇
2017/07/26 Javascript
使用Vue.js和Element-UI做一个简单登录页面的实例
2018/02/23 Javascript
原生JS实现$.param() 函数的方法
2018/08/10 Javascript
jsonp跨域及实现百度首页联想功能的方法
2018/08/30 Javascript
js实现每日签到功能
2018/11/29 Javascript
详解JavaScript之ES5的继承
2020/07/08 Javascript
[55:23]VGJ.T vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python高级应用实例对比:高效计算大文件中的最长行的长度
2014/06/08 Python
Python简单计算文件夹大小的方法
2015/07/14 Python
一张图带我们入门Python基础教程
2017/02/05 Python
pycharm debug功能实现跳到循环末尾的方法
2018/11/29 Python
简单了解python调用其他脚本方法实例
2020/03/26 Python
Jmeter HTTPS接口测试证书导入过程图解
2020/07/22 Python
Python 如何操作 SQLite 数据库
2020/08/17 Python
HTML5 History API 实现无刷新跳转
2016/01/11 HTML / CSS
求职简历中的自我评价分享
2013/12/08 职场文书
中学生操行评语
2014/04/24 职场文书
教师师德考核自我评价
2014/09/13 职场文书
房屋转让协议书(标准范本)
2016/03/21 职场文书
承诺书的签字人,需不需要承担相应的责任?
2019/07/09 职场文书
导游词之阳朔遇龙河
2019/12/16 职场文书
在Java中Collection的一些常用方法总结
2021/06/13 Java/Android
Nginx内网单机反向代理的实现
2021/11/07 Servers
vue实现列表垂直无缝滚动
2022/04/08 Vue.js
MySQL中dd::columns表结构转table过程及应用详解
2022/09/23 MySQL