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 相关文章推荐
jQuery实现随意改变div任意属性的名称和值(部分原生js实现)
May 28 Javascript
当鼠标移动到图片上时跟随鼠标显示放大的图片效果
Jun 06 Javascript
javascript自然分类法算法实现代码
Oct 11 Javascript
js函数名与form表单元素同名冲突的问题
Mar 07 Javascript
jquery复选框checkbox实现删除前判断
Apr 20 Javascript
深入探讨JavaScript、JQuery屏蔽网页鼠标右键菜单及禁止选择复制
Jun 10 Javascript
js addDqmForPP给标签内属性值加上双引号的函数
Dec 24 Javascript
Vue实现typeahead组件功能(非常靠谱)
Aug 26 Javascript
JS实现table表格固定表头且表头随横向滚动而滚动
Oct 26 Javascript
tween.js缓动补间动画算法示例
Feb 13 Javascript
JS使用Date对象实时显示当前系统时间简单示例
Aug 23 Javascript
layui form表单提交后实现自动刷新
Oct 25 Javascript
基于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
SONY ICF-SW07收音机电路分析
2021/03/02 无线电
深入探讨:Nginx 502 Bad Gateway错误的解决方法
2013/06/03 PHP
CodeIgniter错误mysql_connect(): No such file or directory解决方法
2014/09/06 PHP
Laravel框架实现的rbac权限管理操作示例
2019/01/16 PHP
Javascript 面向对象特性
2009/12/28 Javascript
jQuery 处理表单元素的代码
2010/02/15 Javascript
JS获取后台Cookies值的小例子
2013/03/04 Javascript
jQuery:节点(插入,复制,替换,删除)操作
2013/03/04 Javascript
JavaScript类型系统之基本数据类型与包装类型
2016/01/06 Javascript
JavaScript数据结构之二叉树的删除算法示例
2017/04/13 Javascript
在bootstrap中实现轮播图实例代码
2017/06/11 Javascript
微信小程序实现多个按钮toggle功能的实例
2017/06/13 Javascript
Node.JS中快速扫描端口并发现局域网内的Web服务器地址(80)
2017/09/18 Javascript
layui的布局和表格的渲染以及动态生成表格的方法
2019/09/18 Javascript
js实现自定义滚动条的示例
2020/10/27 Javascript
Python获取电脑硬件信息及状态的实现方法
2014/08/29 Python
Python正则表达式匹配中文用法示例
2017/01/17 Python
python os用法总结
2018/06/08 Python
Python中SQLite如何使用
2020/05/27 Python
python中对二维列表中一维列表的调用方法
2020/06/07 Python
python使用nibabel和sitk读取保存nii.gz文件实例
2020/07/01 Python
django form和field具体方法和属性说明
2020/07/09 Python
HTML5 textarea高度自适应的两种方案
2020/04/08 HTML / CSS
澳洲健康食品网上商店:Aussie Health Products
2018/06/15 全球购物
法国票务网站:Ticketmaster法国
2018/07/09 全球购物
电气技术员岗位职责
2013/11/19 职场文书
户籍证明的格式
2014/01/13 职场文书
大学运动会入场词
2014/02/22 职场文书
有兼职工作经历的简历自我评价
2014/03/07 职场文书
教职工代表大会主持词
2014/04/01 职场文书
酒店仓管员岗位职责
2014/04/28 职场文书
机关党员进社区活动总结
2014/07/05 职场文书
自主招生自荐信格式
2015/03/04 职场文书
初中生入团申请书范文(五篇)
2019/10/16 职场文书
Mysql数据库表中为什么有索引却没有提高查询速度
2022/02/24 MySQL
Java后端 Dubbo retries 超时重试机制的解决方案
2022/04/14 Java/Android