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居然支持中文(unicode)编程!
Apr 12 Javascript
JQuery 获取和设置Select选项的代码
Feb 07 Javascript
jquery 文本上下无缝滚动,鼠标放上去就停止 小例子
Jun 05 Javascript
Javascript表格翻页效果实现思路及代码
Aug 23 Javascript
JavaScript语言核心数据类型和变量使用介绍
Aug 23 Javascript
AngularJS入门教程(二):AngularJS模板
Dec 06 Javascript
浅析JavaScript 调试方法和技巧
Oct 22 Javascript
jQuery ajax分页插件实例代码
Jan 27 Javascript
JS实现n秒后自动跳转的两种方法
Nov 30 Javascript
在js中实现邮箱格式的验证方法(推荐)
Oct 24 Javascript
利用Node.js检测端口是否被占用的方法
Dec 07 Javascript
原生js实现商品筛选功能
Oct 28 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
Apache2 httpd.conf 中文版
2006/12/06 PHP
thinkphp实现把数据库中的列的值存到下拉框中的方法
2017/01/20 PHP
PHP+iframe模拟Ajax上传文件功能示例
2019/07/02 PHP
ExtJS 简介 让你知道extjs是什么
2008/12/29 Javascript
JS在IE和FF下attachEvent,addEventListener学习笔记
2009/11/26 Javascript
js 一个关于图片onload加载的事
2013/11/10 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 图片库
2015/01/09 Javascript
浅谈setTimeout 与 setInterval
2015/06/23 Javascript
JavaScript生成SQL查询表单的方法
2015/08/13 Javascript
javascript表单事件处理方法详解
2016/05/15 Javascript
div实现自适应高度的textarea实现angular双向绑定
2017/01/08 Javascript
js以及jquery实现手风琴效果
2020/04/17 Javascript
jQuery源码解读之extend()与工具方法、实例方法详解
2017/03/30 jQuery
微信分享调用jssdk实例
2017/06/08 Javascript
浅谈Vue-cli 命令行工具分析
2017/11/22 Javascript
JavaScript实现正则去除a标签并保留内容的方法【测试可用】
2018/07/18 Javascript
JavaScript事件对象event用法分析
2018/07/27 Javascript
小程序实现授权登陆的解决方案
2018/12/02 Javascript
Javascript模拟实现new原理解析
2020/03/03 Javascript
js模拟实现烟花特效
2020/03/10 Javascript
基于JQuery实现页面定时弹出广告
2020/05/08 jQuery
vue如何使用rem适配
2021/02/06 Vue.js
[00:32]2018DOTA2亚洲邀请赛出场——VP
2018/04/04 DOTA
Python修改文件往指定行插入内容的实例
2019/01/30 Python
解决Django生产环境无法加载静态文件问题的解决
2019/04/23 Python
Selenium 滚动页面至元素可见的方法
2020/03/18 Python
python文件操作seek()偏移量,读取指正到指定位置操作
2020/07/05 Python
LightInTheBox西班牙站点:全球商品在线采购
2016/09/22 全球购物
打印机墨盒:123Inkjets
2017/02/16 全球购物
viagogo波兰票务平台:演唱会、体育比赛、戏剧门票
2018/04/23 全球购物
思想专业自荐信范文
2013/12/25 职场文书
初中国旗下的演讲稿
2014/08/28 职场文书
汽车4S店销售经理岗位职责
2015/04/02 职场文书
62句有关感恩节文案(推荐收藏)
2019/11/28 职场文书
matplotlib如何设置坐标轴刻度的个数及标签的方法总结
2021/06/11 Python
PostgreSQL数据库创建并使用视图以及子查询
2022/04/11 PostgreSQL