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 相关文章推荐
JS 获取span标签中的值的代码 支持ie与firefox
Aug 24 Javascript
简介AngularJS中使用factory和service的方法
Jun 17 Javascript
jquery中的常见问题及快速解决方法小结
Jun 14 Javascript
jQuery 移动端拖拽(模块化开发,触摸事件,webpack)
Oct 28 Javascript
使用JavaScript中的lodash编写双色球效果
Jun 24 Javascript
浅谈webpack4 图片处理汇总
Sep 12 Javascript
如何实现一个webpack模块解析器
Oct 24 Javascript
vue+iview动态渲染表格详解
Mar 19 Javascript
深入了解JavaScript 的 WebAssembly
Jun 15 Javascript
修改Vue打包后的默认文件名操作
Aug 12 Javascript
八种Vue组件间通讯方式合集(推荐)
Aug 18 Javascript
详解Vue中的watch和computed
Nov 09 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
ThinkPHP中实例Model方法的区别说明
2010/08/21 PHP
PHP访问Google Search API的方法
2015/03/05 PHP
Zend Framework动作助手Url用法详解
2016/03/05 PHP
一段实时更新的时间代码
2006/07/07 Javascript
dropdownlist之间的互相联动实现(显示与隐藏)
2009/11/24 Javascript
JQuery扩展插件Validate 2通过参数设置验证规则
2011/09/05 Javascript
对frameset、frame、iframe的js操作示例代码
2013/08/16 Javascript
JavaScript组合拼接字符串的效率对比测试
2014/11/06 Javascript
jQuery寻找n以内完全数的方法
2015/06/24 Javascript
easyui 中的datagrid跨页勾选问题的实现方法
2017/01/18 Javascript
利用Javascript裁剪图片并存储的简单实现
2017/03/13 Javascript
微信小程序微信支付接入开发实例详解
2017/04/12 Javascript
angularJS 发起$http.post和$http.get请求的实现方法
2017/05/18 Javascript
angularjs实现柱状图动态加载的示例
2017/12/11 Javascript
vue中本地静态图片路径写法
2018/03/06 Javascript
简单的三步vuex入门
2018/05/20 Javascript
详解vscode中vue代码颜色插件
2018/10/11 Javascript
vue实现购物车小案例
2019/09/27 Javascript
Python获取文件所在目录和文件名的方法
2017/01/12 Python
Python算法应用实战之队列详解
2017/02/04 Python
在pycharm中使用git版本管理以及同步github的方法
2019/01/16 Python
python实现udp聊天窗口
2020/03/31 Python
python解释器安装教程的方法步骤
2020/07/02 Python
Django中和时区相关的安全问题详解
2020/10/12 Python
python给list排序的简单方法
2020/12/10 Python
英国最大的独立家具零售商:Furniture Village
2016/09/06 全球购物
Homestay中文官网:全球寄宿家庭
2018/10/18 全球购物
优秀员工自荐信范文
2013/10/05 职场文书
饲料采购员岗位职责
2013/12/19 职场文书
监察建议书范文
2014/03/12 职场文书
表彰会主持词
2014/03/26 职场文书
分公司总经理岗位职责
2014/07/30 职场文书
普通党员四风问题对照检查材料
2014/09/27 职场文书
2014年反腐倡廉工作总结
2014/12/05 职场文书
2015年医院保卫科工作总结
2015/07/23 职场文书
毕业生自荐求职信书写的技巧
2019/08/26 职场文书