JS选取DOM元素的简单方法


Posted in Javascript onJuly 08, 2016

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

今天试了下各种选取元素的方法的速度,用原生的方法比jQuery要快差不多8倍,IE8是最慢的,IE9的速度差不多是IE8的3倍,Chrome的表现最好,其次是Firefox)

选取文档元素的方法:

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)使用方法:element.getElementsByTagName("tagName")
   其中,element是有效的DOM元素(包括document)

tagName是DOM元素的标签名

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标准的选择器语法

以上这篇JS选取DOM元素的简单方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery 子窗口操作父窗口的代码
Sep 21 Javascript
Js组件的一些写法
Sep 10 Javascript
JavaScript驾驭网页-DOM
Mar 24 Javascript
bootstrap table实现双击可编辑、添加、删除行功能
Sep 27 Javascript
Angular5.0 子组件通过service传递值给父组件的方法
Jul 13 Javascript
解决LayUI表单获取不到data的问题
Aug 20 Javascript
vue webpack开发访问后台接口全局配置的方法
Sep 18 Javascript
JavaScript基础之静态方法和实例方法分析
Dec 26 Javascript
深入理解Node内建模块和对象
Mar 12 Javascript
Vue基础学习之项目整合及优化
Jun 02 Javascript
MockJs结合json-server模拟后台数据
Aug 26 Javascript
解决vue项目input输入框双向绑定数据不实时生效问题
Aug 05 Javascript
封装获取dom元素的简单实例
Jul 08 #Javascript
jquery.serialize() 函数语法及简单实例
Jul 08 #Javascript
详解BootStrap中Affix控件的使用及保持布局的美观的方法
Jul 08 #Javascript
Augularjs-起步详解
Jul 08 #Javascript
Bootstrap Metronic完全响应式管理模板之菜单栏学习笔记
Jul 08 #Javascript
Bootstrap Metronic完全响应式管理模板学习笔记
Jul 08 #Javascript
Angularjs---项目搭建图文教程
Jul 08 #Javascript
You might like
1.PHP简介
2006/10/09 PHP
使用PHP实现阻止用户上传成人照片或者裸照
2014/12/25 PHP
PHP使用in_array函数检查数组中是否存在某个值
2015/03/25 PHP
学习php设计模式 php实现享元模式(flyweight)
2015/12/07 PHP
yii2利用自带UploadedFile实现上传图片的示例
2017/02/16 PHP
php语言注释,单行注释和多行注释
2018/01/21 PHP
Yii1.1框架实现PHP极光推送消息通知功能
2018/09/06 PHP
ExtJS如何设置与获取radio控件的选取状态
2014/01/22 Javascript
jQuery的3种请求方式$.post,$.get,$.getJSON
2014/03/28 Javascript
用javascript关闭本窗口技巧小结
2014/09/05 Javascript
javascript学习笔记(五)原型和原型链详解
2014/10/08 Javascript
JS+CSS实现带关闭按钮DIV弹出窗口的方法
2015/02/27 Javascript
jQuery表单验证功能实例
2015/08/28 Javascript
vue.js实现表格合并示例代码
2016/11/30 Javascript
详解Vue-基本标签和自定义控件
2017/03/24 Javascript
JS实现给数组对象排序的方法分析
2019/06/24 Javascript
微信小程序批量监听输入框对按钮样式进行控制的实现代码
2019/10/12 Javascript
vue制作抓娃娃机的示例代码
2020/04/17 Javascript
详解Vue之事件处理
2020/07/10 Javascript
[01:01:43]EG vs VP 2018国际邀请赛淘汰赛BO3 第二场 8.24
2018/08/25 DOTA
Python里隐藏的“禅”
2014/06/16 Python
Python使用poplib模块和smtplib模块收发电子邮件的教程
2016/07/02 Python
Python控制键盘鼠标pynput的详细用法
2019/01/28 Python
Django中如何使用sass的方法步骤
2019/07/09 Python
pycharm 设置项目的根目录教程
2020/02/12 Python
解决Pycharm 运行后没有输出的问题
2021/02/05 Python
来自美国主售篮球鞋的零售商店:KICKSUSA
2017/11/28 全球购物
若干个Java基础面试题
2015/05/19 面试题
毕业生文员求职信
2013/11/03 职场文书
促销活动计划书
2014/05/02 职场文书
合伙经营协议书范本
2014/09/13 职场文书
蓬莱阁导游词
2015/02/04 职场文书
2016国培研修心得体会
2016/01/08 职场文书
2019商业计划书格式、范文
2019/04/24 职场文书
两行代码解决Jupyter Notebook中文不能显示的问题
2021/04/24 Python
Python PIL按比例裁剪图片
2022/05/11 Python