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 设置文本框中焦点的位置
Nov 20 Javascript
jQuery插件-jRating评分插件源码分析及使用方法
Dec 28 Javascript
JavaScript实现防止网页被嵌入Frame框架的代码分享
Dec 29 Javascript
JQuery的ON()方法支持的所有事件罗列
Feb 28 Javascript
javascript实现五星评分功能
Nov 10 Javascript
Javascript之Number对象介绍
Jun 07 Javascript
JS框架之vue.js(深入三:组件1)
Sep 29 Javascript
node.js基于socket.io快速实现一个实时通讯应用
Apr 23 Javascript
JavaScript如何实现元素全排列实例代码
May 14 Javascript
JavaScript数组及常见操作方法小结
Nov 13 Javascript
vue-cli或vue项目利用HBuilder打包成移动端app操作
Jul 29 Javascript
javaScript代码飘红报错看不懂?读完这篇文章再试试
Aug 19 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 array_map()数组函数使用说明
2011/07/12 PHP
thinkphp控制器调度使用示例
2014/02/24 PHP
PHP向浏览器输出内容的4个函数总结
2014/11/17 PHP
jQuery 源码分析笔记(4) Ready函数
2011/06/02 Javascript
jQuery Validation Plugin验证插件手动验证
2016/01/26 Javascript
javascript HTML+CSS实现经典橙色导航菜单
2016/02/16 Javascript
JavaScript学习笔记之数组求和方法
2016/03/23 Javascript
js HTML5多媒体影音播放
2016/10/17 Javascript
input框中的name和id的区别
2016/11/16 Javascript
JS产生随机数的用法小结
2016/12/10 Javascript
js select下拉联动 更具级联性!
2020/04/17 Javascript
JavaScript中localStorage对象存储方式实例分析
2017/01/12 Javascript
JavaScript实现替换字符串中最后一个字符的方法
2017/03/07 Javascript
vue.js实现刷新当前页面的方法教程
2017/07/05 Javascript
浅析vue-router原理
2018/10/19 Javascript
Vue 中如何将函数作为 props 传递给组件的实现代码
2020/05/12 Javascript
vue离开当前页面触发的函数代码
2020/09/01 Javascript
利用Vue实现简易播放器的完整代码
2020/12/30 Vue.js
[05:15]2018年度CS GO社区贡献奖-完美盛典
2018/12/16 DOTA
浅析Python基础-流程控制
2016/03/18 Python
python针对excel的操作技巧
2018/03/13 Python
详解Python读取yaml文件多层菜单
2019/03/23 Python
python批量检查两个对应的txt文件的行数是否一致的实例代码
2020/10/31 Python
Python爬虫新手入门之初学lxml库
2020/12/20 Python
css 元素选择器的简单实例
2016/05/23 HTML / CSS
SIXPAD智能健身仪英国官网:革命性的训练装备品牌
2018/09/27 全球购物
"火柴棍式"程序员面试题
2014/03/16 面试题
教师自荐信范文
2013/12/09 职场文书
办公室打字员岗位职责
2014/04/16 职场文书
合伙经营协议书
2014/04/18 职场文书
小学生感恩演讲稿
2014/04/25 职场文书
会计实训总结范文
2015/08/03 职场文书
适合毕业生创业的项目怎么找?
2019/08/08 职场文书
漫画「狩龙人拉格纳」公开TV动画预告图
2022/03/22 日漫
Python绘制散乱的点构成的图的方法
2022/04/21 Python
Python+pyaudio实现音频控制示例详解
2022/07/23 Python