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 相关文章推荐
用脚本调用样式的几种方法
Dec 09 Javascript
JavaScript 语法集锦 脚本之家基础推荐
Nov 15 Javascript
获取客户端电脑日期时间js代码(jquery)
Sep 12 Javascript
js 获取和设置css3 属性值的实现方法
May 06 Javascript
JS截取字符串常用方法整理及使用示例
Oct 18 Javascript
jQuery中对未来的元素绑定事件用bind、live or on
Apr 17 Javascript
5款JavaScript代码压缩工具推荐
Jul 07 Javascript
跟我学习javascript的prototype原型和原型链
Nov 18 Javascript
JavaScript兼容性总结之获取非行间样式案例
Aug 07 Javascript
js实现Tab选项卡切换效果
Jul 17 Javascript
angular.js实现购物车功能
Oct 23 Javascript
node.js 使用 net 模块模拟 websocket 握手进行数据传递操作示例
Feb 11 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
将数字格式的计算结果转为汉字格式
2006/10/09 PHP
JS+PHP实现用户输入数字后显示最大的值及所在位置
2017/06/19 PHP
PHP实现打包zip并下载功能
2018/06/12 PHP
JavaScript触发器详解
2007/03/10 Javascript
jquery无缝向上滚动实现代码
2013/03/29 Javascript
JQuery表格内容过滤的实现方法
2013/07/05 Javascript
浅谈javascript 归并方法
2015/01/21 Javascript
JavaScript识别网页关键字并进行描红的方法
2015/11/09 Javascript
Nodejs下用submit提交表单提示cannot post错误的解决方法
2016/11/21 NodeJs
基于Javascript倒计时效果
2016/12/22 Javascript
基于Marquee.js插件实现的跑马灯效果示例
2017/01/25 Javascript
jquery实现tab选项卡切换效果(悬停、下方横线动画位移)
2017/05/05 jQuery
vue表单绑定实现多选框和下拉列表的实例
2017/08/12 Javascript
JavaScript你不知道的一些数组方法
2017/08/18 Javascript
js遍历添加栏目类添加css 再点击其它删除css【推荐】
2018/06/12 Javascript
JavaScript使用类似break机制中断forEach循环的方法
2018/11/13 Javascript
vue input实现点击按钮文字增删功能示例
2019/01/29 Javascript
JavaScript基础之this和箭头函数详析
2019/09/05 Javascript
vue实现树形结构样式和功能的实例代码
2019/10/15 Javascript
在Python中使用PIL模块对图片进行高斯模糊处理的教程
2015/05/05 Python
Python处理中文标点符号大集合
2018/05/14 Python
Python实现监控键盘鼠标操作示例【基于pyHook与pythoncom模块】
2018/09/04 Python
Python解决线性代数问题之矩阵的初等变换方法
2018/12/12 Python
Python文件路径名的操作方法
2019/10/30 Python
使用PyCharm安装pytest及requests的问题
2020/07/31 Python
全面解析CSS Media媒体查询使用操作(推荐)
2017/08/15 HTML / CSS
移动web模拟客户端实现多方框输入密码效果【附代码】
2016/03/25 HTML / CSS
HTML5 实现图片上传预处理功能
2020/02/06 HTML / CSS
详解如何将 Canvas 绘制过程转为视频
2021/01/25 HTML / CSS
美国唇部护理专家:Sara Happ
2019/06/19 全球购物
德国、奥地利和瑞士最大的旅行和度假门户网站:HolidayCheck
2019/11/14 全球购物
大学英语演讲稿(中英文对照)
2014/01/14 职场文书
2015年大学班级工作总结
2015/04/28 职场文书
Redis5之后版本的高可用集群搭建的实现
2021/04/27 Redis
python运行脚本文件的三种方法实例
2022/06/25 Python
Python如何利用pandas读取csv数据并绘图
2022/07/07 Python