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的图片大小自动适应实现代码
Nov 17 Javascript
jQuery类选择器用法实例
Dec 23 Javascript
jQuery Dialog对话框事件用法实例分析
May 10 Javascript
js实现简单的碰壁反弹效果
Aug 30 Javascript
JavaScript注入漏洞的原理及防范(详解)
Dec 04 Javascript
bootstrapValidator表单验证插件学习
Dec 30 Javascript
Angular ng-animate和ng-cookies用法详解
Apr 18 Javascript
vue富文本编辑器组件vue-quill-edit使用教程
Sep 21 Javascript
JS前端知识点总结之内置对象,日期对象和定时器相关操作
Jul 05 Javascript
在layui中使用form表单监听ajax异步验证注册的实例
Sep 03 Javascript
jQuery zTree如何改变指定节点文本样式
Oct 16 jQuery
利用js实现简单开关灯代码
Nov 23 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 命名空间(namespace)原理与用法实例小结
2019/11/13 PHP
关于viewport,Ext.panel和Ext.form.panel的关系
2009/05/07 Javascript
javascript 关闭IE6、IE7
2009/06/01 Javascript
利用JQuery+EasyDrag 实现弹出可拖动的Div,同时向Div传值,然后返回Div选中的值
2009/10/24 Javascript
纯JavaScript实现的完美渐变弹出层效果代码
2010/04/02 Javascript
jQuery基础知识小结
2014/12/22 Javascript
JavaScript实现节点的删除与序号重建实例
2015/08/05 Javascript
Perl Substr()函数及函数的应用
2015/12/16 Javascript
js实现n秒倒计时后才可以点击的效果
2015/12/20 Javascript
简单实现nodejs上传功能
2017/01/14 NodeJs
jQuery轻松实现无缝轮播效果
2017/03/22 jQuery
详解解决使用axios发送json后台接收不到的问题
2018/06/27 Javascript
Vue核心概念Action的总结
2019/01/18 Javascript
Vue2.x通用编辑组件的封装及应用详解
2019/05/28 Javascript
js实现无限瀑布流实例方法
2019/09/16 Javascript
vue项目中播放rtmp视频文件流的方法
2020/09/17 Javascript
基于vue项目设置resolves.alias: '@'路径并适配webstorm
2020/12/02 Vue.js
jquery实现穿梭框功能
2021/01/19 jQuery
Vue实现圆环进度条的示例
2021/02/06 Vue.js
Python实现扫描指定目录下的子目录及文件的方法
2014/07/16 Python
在Python中操作字典之setdefault()方法的使用
2015/05/21 Python
Java与Python两大幸存者谁更胜一筹呢
2018/04/12 Python
python 实现提取某个索引中某个时间段的数据方法
2019/02/01 Python
Python里字典的基本用法(包括嵌套字典)
2019/02/27 Python
java中的控制结构(if,循环)详解
2019/06/26 Python
Python模拟登录之滑块验证码的破解(实例代码)
2019/11/18 Python
学生如何注册Pycharm专业版以及pycharm的安装
2020/09/24 Python
Python根据字符串调用函数过程解析
2020/11/05 Python
LA MER海蓝之谜美国官网:传奇面霜
2016/08/27 全球购物
西班牙英格列斯百货法国官网:El Corte Inglés法国
2017/07/09 全球购物
SIXPAD智能健身仪英国官网:革命性的训练装备品牌
2018/09/27 全球购物
通信工程毕业生求职信
2013/11/16 职场文书
党员群众路线承诺书
2014/05/20 职场文书
2014年保洁员工作总结
2014/11/19 职场文书
2014年师德师风工作总结
2014/11/25 职场文书
Python中使用Lambda函数的5种用法
2021/04/01 Python