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 写的一个简单的timer
Jul 30 Javascript
jQuery 表单验证扩展(四)
Oct 20 Javascript
JavaScript 创建运动框架的实现代码
May 08 Javascript
给Flash加一个超链接(推荐使用透明层)兼容主流浏览器
Jun 09 Javascript
javascript抖动元素的小例子
Oct 28 Javascript
用jQuery与JSONP轻松解决跨域访问的问题
Feb 04 Javascript
JavaScript解析json格式数据简单示例
Dec 09 Javascript
js Canvas绘制圆形时钟效果
Feb 17 Javascript
原生js简单实现放大镜特效
May 16 Javascript
Vue2几种常见开局方式详解
Sep 09 Javascript
JavaScript数组的5种迭代方法
Sep 29 Javascript
浅析Vue 中的 render 函数
Feb 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
php 动态执行带有参数的类方法
2009/04/10 PHP
php网上商城购物车设计代码分享
2012/02/15 PHP
PHP中localeconv()函数的用法
2019/03/26 PHP
php数组遍历类与用法示例
2019/05/24 PHP
使弱类型的语言JavaScript变强势
2009/06/22 Javascript
javascript offsetX与layerX区别
2010/03/12 Javascript
jQuery下的几个你可能没用过的功能
2010/08/29 Javascript
Extjs4 Treegrid 使用心得分享(经验篇)
2013/07/01 Javascript
css结合js制作下拉菜单示例代码
2014/02/27 Javascript
jquery控制select的text/value值为选中状态
2014/06/03 Javascript
Jquery设置attr的disabled属性控制某行显示或者隐藏
2014/09/25 Javascript
jQuery中DOM操作实例分析
2015/01/23 Javascript
基于jQuery+JSON的省市二三级联动效果
2015/06/05 Javascript
如何实现JavaScript动态加载CSS和JS文件
2020/12/28 Javascript
js判断出两个字符串最大子串的函数实现方法
2016/11/01 Javascript
基于JS分页控件实现简单美观仿淘宝分页按钮效果
2016/11/07 Javascript
webpack实现热更新(实施同步刷新)
2017/07/28 Javascript
vue-cli webpack模板项目搭建及打包时路径问题的解决方法
2018/02/26 Javascript
Vue Router的懒加载路径的解决方法
2018/06/21 Javascript
layui table设置前台过滤转义等方法
2018/08/17 Javascript
angularJs中跳转到指定的锚点实例($anchorScroll)
2018/08/31 Javascript
JS中作用域以及变量范围分析
2020/07/18 Javascript
vue 在methods中调用mounted的实现操作
2020/08/07 Javascript
Python爬虫利用cookie实现模拟登陆实例详解
2017/01/12 Python
python实现kNN算法
2017/12/20 Python
浅谈Python中的bs4基础
2018/10/21 Python
Python爬虫 bilibili视频弹幕提取过程详解
2019/07/31 Python
Python PyQt5整理介绍
2020/04/01 Python
python实现猜单词游戏
2020/05/22 Python
关于Java String的一道面试题
2013/09/29 面试题
构造方法和其他方法的区别
2016/04/26 面试题
秋季校运动会广播稿
2014/02/23 职场文书
六五普法规划实施方案
2014/03/21 职场文书
共青团员自我评价
2015/03/10 职场文书
导游词之青岛崂山
2019/12/27 职场文书
Vue如何实现组件间通信
2021/05/15 Vue.js