JavaScipt选取文档元素的方法(推荐)


Posted in Javascript onAugust 05, 2016

摘自JavaScript权威指南(jQuery根据样式选择器查找元素的终极方式是 先用getElementsByTagName(*)获取所有DOM元素,然后根据样式选择器对所有DOM元素进行筛选)

选取文档元素的方法:

1、通过ID选取元素(getElementById)

1)使用方法:document.getElementById("domId")
        其中,domId为要选取元素的id属性值

2)兼容性:低于IE8版本的IE浏览器对getElementById方法的实现是不区分元素ID号的大小写的,并且会返回匹配name属性的元素。

2、通过名称name选取元素(getElementsByName)

1)使用方法:document.getElementsByName("domName")
        其中,domName为要选取元素的name属性值

2)说明:

a. 返回值是一个nodeList集合(区别于Array)

b. 和ID属性不一样,name属性只在少数DOM元素中有效(form表单、表单元素、iframe、img)。这是因为name属性是为了方便提交表单数据而打造的。            

c. 为form、img、iframe、applet、embed、object元素设置name属性时,会自动在Document对象中创建以该name属性值命名的属性。所以可以通过document.domName引用相应的dom对象

3)兼容性:IE中ID属性值匹配的元素也会一起返回

3、通过标签名选取元素(getElementsByTagName)

1)使用方法:document.getElementsByTagName("tagName")

其中,element是有效的DOM元素(包括document)
                 tagName是DOM元素的标签名

如:var aInput = document.getElementsByTagName("input");

 var aName = aInput[0];

 var pwd = aInput[1];

  var cfm = aInput[2];

2)说明:a. 返回值是一个nodeList集合(区别于Array)

b. 该方法只能选取调用该方法的元素的后代元素。

c. tagName不区分大小写

d. 当tagName为*时,表示选取所有元素(需遵从b.规则)

e. HTMLDocument会定义一些快捷属性来访问标签节点。如:document的images、forms、links属性指向<img>、<form>、<a>标签元素集合,而document.body和document.head总是指向body和head标签(当未显示声明head标签时,浏览器也会创建document.head属性)

4、通过CSS类选取元素(getElementsByClassName)

1)使用方法:element.getElementsByClassName("classNames")

其中,element是有效的DOM元素(包括document)

classNames是CSS类名称的组合(多个类名之间用空格,可以是多个空格隔开),

如element.getElementsByClassName("class2 class1")将选取elements后代元素中同时应用了class1和class2样式的元素(样式名称不区分先后顺序)

2)说明:

a. 返回值是一个nodeList集合(区别于Array)  

b. 该方法只能选取调用该方法的元素的后代元素。

3)兼容性:IE8及其以下版本的浏览器未实现getElementsByClassName方法

5、通过CSS选择器选取元素

1)使用方法:document.querySelectorAll("selector")

其中,selector为合法的CSS选择器

2)说明:a. 返回值是一个nodeList集合(区别于Array)

3)兼容性:IE8及其以下版本的浏览器只支持CSS2标准的选择器语法

以上这篇JavaScipt选取文档元素的方法(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Safari5中alert的无限循环BUG
Apr 07 Javascript
Javascript模块化编程(一)模块的写法最佳实践
Jan 17 Javascript
js生成验证码并直接在前端判断
May 15 Javascript
jQuery手机拨号界面特效代码分享
Aug 27 Javascript
javascript图片延迟加载实现方法及思路
Dec 31 Javascript
addeventlistener监听scroll跟touch(实例讲解)
Aug 04 Javascript
vue使用mint-ui实现下拉刷新和无限滚动的示例代码
Nov 06 Javascript
JavaScript中set与get方法用法示例
Aug 15 Javascript
vue2.0+vue-router构建一个简单的列表页的示例代码
Feb 13 Javascript
如何在JavaScript中优雅的提取循环内数据详解
Mar 04 Javascript
Vue CLI3移动端适配(px2rem或postcss-plugin-px2rem)
Apr 27 Javascript
vue+iview框架实现左侧动态菜单功能的示例代码
Jul 23 Javascript
JS监听微信、支付宝等移动app及浏览器的返回、后退、上一页按钮的事件方法
Aug 05 #Javascript
jQuery实现定位滚动条位置
Aug 05 #Javascript
在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口的方法
Aug 05 #Javascript
浅谈JavaScript中的this指针和引用知识
Aug 05 #Javascript
JavaScript中的this引用(推荐)
Aug 05 #Javascript
JS实现HTML表格排序功能
Aug 05 #Javascript
JavaScript如何实现跨域请求
Aug 05 #Javascript
You might like
php 地区分类排序算法
2013/07/01 PHP
php检测数组长度函数sizeof与count用法
2014/11/17 PHP
PHP获取文件相对路径的方法
2015/02/26 PHP
javascript 命名空间以提高代码重用性
2008/11/13 Javascript
jquery中.add()的使用分析
2013/04/26 Javascript
在百度知道团队中快速审批新成员的js脚本
2014/02/02 Javascript
使用js实现数据格式化
2014/12/03 Javascript
在Google 地图上实现做的标记相连接
2015/01/05 Javascript
JavaScript使ifram跨域相互访问及与PHP通信的实例
2016/03/03 Javascript
React.js入门学习第一篇
2016/03/30 Javascript
由浅入深剖析Angular表单验证
2016/07/14 Javascript
jQuery基于函数重载实现自定义Alert函数样式的方法
2016/07/27 Javascript
详解Angular开发中的登陆与身份验证
2016/07/27 Javascript
js数组操作方法总结(必看篇)
2016/11/22 Javascript
详解angular2采用自定义指令(Directive)方式加载jquery插件
2017/02/09 Javascript
Node.js npm命令运行node.js脚本的方法
2018/10/10 Javascript
[54:54]Newbee vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
[01:11:21]DOTA2-DPC中国联赛 正赛 VG vs Elephant BO3 第一场 3月6日
2021/03/11 DOTA
python数据库操作常用功能使用详解(创建表/插入数据/获取数据)
2013/12/06 Python
详解Python中的join()函数的用法
2015/04/07 Python
Python实现的简单算术游戏实例
2015/05/26 Python
Python实现excel转sqlite的方法
2017/07/17 Python
对numpy中轴与维度的理解
2018/04/18 Python
html5图片上传预览示例分享
2014/04/14 HTML / CSS
英国最大的滑板品牌选择:Route One
2019/09/22 全球购物
ASICS印度官方网站:日本专业运动品牌
2020/06/20 全球购物
程序运行正确, 但退出时却"core dump"了,怎么回事
2014/02/19 面试题
女方婚礼新郎答谢词
2014/01/11 职场文书
高三英语教学反思
2014/01/13 职场文书
物业管理专业求职信
2014/06/11 职场文书
如何写早恋检讨书
2014/09/10 职场文书
学习焦裕禄同志为人民服务思想汇报
2014/09/10 职场文书
六查六看六改心得体会
2014/10/14 职场文书
2015年幼儿园国庆节活动总结
2015/07/30 职场文书
nginx实现动静分离的方法示例
2021/11/07 Servers
【海涛教你打DOTA】虚空假面第一视角骨弓3房29杀
2022/04/01 DOTA