JS访问DOM节点方法详解


Posted in Javascript onNovember 29, 2016

本文实例讲述了JS访问DOM节点方法。分享给大家供大家参考,具体如下:

查找并访问节点

你可通过若干种方法来查找您希望操作的元素:

通过使用 getElementById() 和 getElementsByTagName() 方法

通过使用一个元素节点的 parentNode、firstChild 以及 lastChild 属性

getElementById() 和 getElementsByTagName()

getElementById() 和 getElementsByTagName() 这两种方法,可查找整个 HTML 文档中的任何 HTML 元素。

这两种方法会忽略文档的结构。假如您希望查找文档中所有的 <p> 元素,getElementsByTagName() 会把它们全部找到,不管 <p> 元素处于文档中的哪个层次。同时,getElementById() 方法也会返回正确的元素,不论它被隐藏在文档结构中的什么位置。

这两种方法会像您提供任何你所需要的 HTML 元素,不论它们在文档中所处的位置!

getElementById() 可通过指定的 ID 来返回元素:

getElementById() 语法

document.getElementById("ID");

注释:getElementById() 无法工作在 XML 中。在 XML 文档中,您必须通过拥有类型 id 的属性来进行搜索,而此类型必须在 XML DTD 中进行声明。

getElementsByTagName() 方法会使用指定的标签名返回所有的元素(作为一个节点列表),这些元素是您在使用此方法时所处的元素的后代。

getElementsByTagName() 可被用于任何的 HTML 元素:

getElementsByTagName() 语法

document.getElementsByTagName("标签名称");

或者:

document.getElementById('ID').getElementsByTagName("标签名称");

实例 1

下面这个例子会返回文档中所有 <p> 元素的一个节点列表:

document.getElementsByTagName("p");

实例 2

下面这个例子会返回所有 <p> 元素的一个节点列表,且这些 <p> 元素必须是 id 为 "maindiv" 的元素的后代:

document.getElementById('maindiv').getElementsByTagName("p");

节点列表(nodeList)

当我们使用节点列表时,通常要把此列表保存在一个变量中,就像这样:

var x=document.getElementsByTagName("p");

现在,变量 x 包含着页面中所有 <p> 元素的一个列表,并且我们可以通过它们的索引号来访问这些 <p> 元素。

注释:索引号从 0 开始。

您可以通过使用 length 属性来循环遍历节点列表:

var x=document.getElementsByTagName("p");
for (var i=0;i<x.length;i++)
{
 // do something with each paragraph
}

您也可以通过索引号来访问某个具体的元素。

要访问第三个 <p> 元素,您可以这么写:

var y=x[2];

parentNode、firstChild以及lastChild

这三个属性 parentNode、firstChild 以及 lastChild 可遵循文档的结构,在文档中进行“短距离的旅行”。

请看下面这个 HTML 片段:

<table>
 <tr>
  <td>John</td>
  <td>Doe</td>
  <td>Alaska</td>
 </tr>
</table>

在上面的HTML代码中,第一个 <td> 是 <tr> 元素的首个子元素(firstChild),而最后一个 <td> 是 <tr>元素的最后一个子元素(lastChild)。

此外,<tr> 是每个 <td>元 素的父节点(parentNode)。

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
JavaScript中跨域调用Flash的方法
Aug 11 Javascript
javascript面向对象之对象的深入理解
Jan 13 Javascript
JS 实现可停顿的垂直滚动实例代码
Nov 23 Javascript
详解angular中如何监控dom渲染完毕
Jan 03 Javascript
bootstrap fileinput组件整合Springmvc上传图片到本地磁盘
May 11 Javascript
Vue 应用中结合vux使用微信 jssdk的方法
Aug 28 Javascript
Node.js学习教程之Module模块
Sep 03 Javascript
VUE单页面切换动画代码(全网最好的切换效果)
Oct 31 Javascript
微信小程序点击顶部导航栏切换样式代码实例
Nov 12 Javascript
layui前端时间戳转化实例
Nov 15 Javascript
vue的hash值原理也是table切换实例代码
Dec 14 Vue.js
vue实现移动端div拖动效果
Mar 03 Vue.js
基于Node.js + WebSocket打造即时聊天程序嗨聊
Nov 29 #Javascript
浅谈js函数的多种定义方法与区别
Nov 29 #Javascript
原生JS简单实现ajax的方法示例
Nov 29 #Javascript
jQuery Checkbox 全选 反选的简单实例
Nov 29 #Javascript
使用Vue.js创建一个时间跟踪的单页应用
Nov 28 #Javascript
js拖拽功能实现代码解析
Nov 28 #Javascript
百度搜索框智能提示案例jsonp
Nov 28 #Javascript
You might like
php你的验证码安全码?
2007/01/02 PHP
md5 16位二进制与32位字符串相互转换示例
2013/12/30 PHP
php使用Image Magick将PDF文件转换为JPG文件的方法
2015/04/01 PHP
Thinkphp框架 表单自动验证登录注册 ajax自动验证登录注册
2016/12/27 PHP
ASP中Sub和Function的区别说明
2020/08/30 Javascript
JS中prototype的用法实例分析
2015/03/19 Javascript
JS使用post提交的两种方式
2015/12/03 Javascript
详解原生js实现offset方法
2017/06/15 Javascript
Node.js dgram模块实现UDP通信示例代码
2017/09/26 Javascript
Vue中computed与methods的区别详解
2018/03/24 Javascript
video.js添加自定义组件的方法
2020/12/09 Javascript
[53:10]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs VG 第一场
2018/04/11 DOTA
[06:53]2018DOTA2国际邀请赛寻真——为复仇而来的Newbee
2018/08/15 DOTA
[49:59]KG vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
python3中int(整型)的使用教程
2017/03/23 Python
wxPython之解决闪烁的问题
2018/01/15 Python
Django中cookie的基本使用方法示例
2018/02/03 Python
python之从文件读取数据到list的实例讲解
2018/04/19 Python
使用python对文件中的单词进行提取的方法示例
2018/12/21 Python
python中web框架的自定义创建
2019/09/08 Python
Tensorflow 多线程与多进程数据加载实例
2020/02/05 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧(自定义信号与槽)详解与实例
2020/03/06 Python
python获取栅格点和面值的实现
2020/03/10 Python
Selenium启动Chrome时配置选项详解
2020/03/18 Python
世界上最大的巴士旅游观光公司:Big Bus Tours
2016/10/20 全球购物
WEB控件及HTML服务端控件能否调用客户端方法?如果能,请解释如何调用?
2015/08/25 面试题
金士达面试非笔试
2012/03/14 面试题
学生实习推荐信范文
2013/11/26 职场文书
租房协议书范文
2014/08/20 职场文书
庆七一活动总结
2014/08/27 职场文书
出国留学英文自荐信
2015/03/25 职场文书
中学教师教学工作总结
2015/08/13 职场文书
2016年公司中秋节致辞
2015/11/26 职场文书
Python机器学习之PCA降维算法详解
2021/05/19 Python
一篇带你入门Java垃圾回收器
2021/06/16 Java/Android
postgresql中如何执行sql文件
2023/05/08 PostgreSQL