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 相关文章推荐
js变量以及其作用域详解
Jul 18 Javascript
JQUERY 获取IFrame中对象及获取其父窗口中对象示例
Aug 19 Javascript
Jquery uploadify图片上传插件无法上传的解决方法
Dec 16 Javascript
javascript实现获取字符串hash值
May 10 Javascript
JavaScript实现将文本框的值插入指定位置的方法
Aug 13 Javascript
详解AngularJS中的http拦截
Feb 09 Javascript
jQuery插件制作的实例教程
May 16 Javascript
Bootstrap实现的标签页内容切换显示效果示例
May 25 Javascript
jQuery实现页码跳转式动态数据分页
Dec 31 jQuery
浅谈vue首屏加载优化
Jun 28 Javascript
javascript设计模式 ? 命令模式原理与用法实例分析
Apr 20 Javascript
vue 授权获取微信openId操作
Nov 13 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
有关 PHP 和 MySQL 时区的一点总结
2008/03/26 PHP
PHP微信开发之模板消息回复
2016/06/24 PHP
PHP实现会员账号单唯一登录的方法分析
2019/03/07 PHP
Yii框架的redis命令使用方法简单示例
2019/10/15 PHP
js png图片(有含有透明)在IE6中为什么不透明了
2010/02/07 Javascript
禁止你的左键复制实用技巧
2013/01/04 Javascript
使用 TypeScript 重新编写的 JavaScript 坦克大战游戏代码
2015/04/07 Javascript
谈一谈jQuery核心架构设计
2016/03/28 Javascript
为什么JavaScript没有块级作用域
2016/05/22 Javascript
基于Vue实现tab栏切换内容不断实时刷新数据功能
2017/04/13 Javascript
jQuery+pjax简单示例汇总
2017/04/21 jQuery
Angular8基础应用之表单及其验证
2019/08/11 Javascript
[54:18]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS BO3 第一场 1月22日
2021/03/11 DOTA
用python实现面向对像的ASP程序实例
2014/11/10 Python
Windows下Python使用Pandas模块操作Excel文件的教程
2016/05/31 Python
Python冲顶大会 快来答题!
2018/01/17 Python
PyQt5实现五子棋游戏(人机对弈)
2020/03/24 Python
简单了解python反射机制的一些知识
2019/07/13 Python
Django框架中序列化和反序列化的例子
2019/08/06 Python
python、Matlab求定积分的实现
2019/11/20 Python
python3.6.8 + pycharm + PyQt5 环境搭建的图文教程
2020/06/11 Python
Michael Kors加拿大官网:购买设计师手袋、手表、鞋子、服装等
2019/03/16 全球购物
传播学毕业生求职信
2013/10/11 职场文书
行政部主管岗位职责
2013/12/28 职场文书
培训班主持词
2014/03/28 职场文书
土木工程求职信
2014/05/29 职场文书
2014年作风建设工作总结
2014/10/29 职场文书
让生命充满爱观后感
2015/06/08 职场文书
五星红旗迎风飘扬观后感
2015/06/17 职场文书
2015迎新晚会活动总结
2015/07/16 职场文书
XX部保密工作制度范本
2019/08/27 职场文书
Python Numpy之linspace用法说明
2021/04/17 Python
MySQL时间设置注意事项的深入总结
2021/05/06 MySQL
美元符号 $
2022/02/17 杂记
Python Pandas读取Excel日期数据的异常处理方法
2022/02/28 Python
Python+Selenium实现抖音、快手、B站、小红书、微视、百度好看视频、西瓜视频、微信视频号、搜狐视频、一点号、大风号、趣头条等短视频自动发布
2022/04/13 Python