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 相关文章推荐
script的async属性以非阻塞的模式加载脚本
Jan 15 Javascript
jQuery的选择器中的通配符使用介绍
Mar 20 Javascript
javascript的alert box在java中如何显示多行
May 18 Javascript
jQuery基础知识小结
Dec 22 Javascript
DOM操作一些常用的属性汇总
Mar 13 Javascript
Jquery ajax 同步阻塞引起的UI线程阻塞问题
Nov 17 Javascript
JavaScript实现页面跳转的方式汇总
May 16 Javascript
vue2组件实现懒加载浅析
Mar 29 Javascript
bootstrap fileinput组件整合Springmvc上传图片到本地磁盘
May 11 Javascript
JS原型继承四步曲及原型继承图一览
Nov 28 Javascript
微信小程序实现slideUp、slideDown滑动效果及点击空白隐藏功能示例
Dec 11 Javascript
详解从0开始搭建微信小程序(前后端)的全过程
Apr 15 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
全国FM电台频率大全 - 23 四川省
2020/03/11 无线电
php empty,isset,is_null判断比较(差异与异同)
2010/10/19 PHP
php实现的错误处理封装类实例
2017/06/20 PHP
PHP十六进制颜色随机生成器功能示例
2017/07/24 PHP
js打印纸函数代码(递归)
2010/06/18 Javascript
关于递归运算的顺序测试代码
2011/11/30 Javascript
JS实现关键字搜索时的相关下拉字段效果
2014/08/05 Javascript
如何防止JavaScript自动插入分号
2015/11/05 Javascript
requirejs + vue 项目搭建详解
2017/06/16 Javascript
BootStrap Table复选框默认选中功能的实现代码(从数据库获取到对应的状态进行判断是否为选中状态)
2017/07/11 Javascript
form表单数据封装成json格式并提交给服务器的实现方法
2017/12/14 Javascript
微信小程序动态生成二维码的实现代码
2018/07/25 Javascript
Vue CLI3中使用compass normalize的方法
2019/05/30 Javascript
javascript头像上传代码实例
2019/09/28 Javascript
微信小程序实现下滑到底部自动翻页功能
2020/03/07 Javascript
es6函数之尾递归用法实例分析
2020/04/25 Javascript
Vue优化:常见会导致内存泄漏问题及优化详解
2020/08/04 Javascript
Openlayers3实现车辆轨迹回放功能
2020/09/29 Javascript
vue项目开启Gzip压缩和性能优化操作
2020/10/26 Javascript
在antd4.0中Form使用initialValue操作
2020/11/02 Javascript
Python采用socket模拟TCP通讯的实现方法
2014/11/19 Python
python写一个md5解密器示例
2018/02/23 Python
Flask框架通过Flask_login实现用户登录功能示例
2018/07/17 Python
Python抓包程序mitmproxy安装和使用过程图解
2020/03/02 Python
css3气泡 css3关键帧动画创建的动态通知气泡
2013/02/26 HTML / CSS
css3 border旋转时的动画应用
2016/01/22 HTML / CSS
Html5之svg可缩放矢量图形_动力节点Java学院整理
2017/07/17 HTML / CSS
美国一家全面的在线零售鞋类公司:SHOEBACCA
2017/01/06 全球购物
澳大利亚在线划船、露营和钓鱼商店:BCF Australia
2020/03/22 全球购物
jQuery treeview树形结构应用
2021/03/24 jQuery
优秀党员获奖感言
2014/02/18 职场文书
党员教师群众路线个人整改措施
2014/10/28 职场文书
2014年客户经理工作总结
2014/11/20 职场文书
2016公司年会主持词
2015/07/01 职场文书
公司酒会主持词
2015/07/02 职场文书
正确的理解和使用Django信号(Signals)
2021/04/14 Python