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
Jun 05 Javascript
dojo学习第一天 Tab选项卡 实现
Aug 28 Javascript
.net,js捕捉文本框回车键事件的小例子(兼容多浏览器)
Mar 11 Javascript
jQuery语法高亮插件支持各种程序源代码语法着色加亮
Apr 27 Javascript
跟我学习javascript的作用域与作用域链
Nov 19 Javascript
javascript匀速运动实现方法分析
Jan 08 Javascript
javascript自定义滚动条实现代码
Apr 20 Javascript
jQuery webuploader分片上传大文件
Nov 07 Javascript
JS克隆,属性,数组,对象,函数实例分析
Nov 26 Javascript
node全局变量__dirname与__filename的区别
Jan 14 Javascript
JS/jQuery实现简单的开关灯效果【案例】
Feb 19 jQuery
js/jQuery实现全选效果
Jun 17 jQuery
封装获取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
Search File Contents PHP 搜索目录文本内容的代码
2010/02/21 PHP
PHP 导出数据到淘宝助手CSV的方法分享
2010/02/27 PHP
php实现把url转换迅雷thunder资源下载地址的方法
2014/11/07 PHP
thinkphp5框架实现的自定义扩展类操作示例
2019/05/16 PHP
tp5.1 框架查询表达式用法详解
2020/05/25 PHP
js 事件小结 表格区别
2007/08/13 Javascript
jquery 漂亮的删除确认和提交无刷新删除示例
2013/11/13 Javascript
jQuery给多个不同元素添加class样式的方法
2015/03/26 Javascript
jQuery判断一个元素是否可见的方法
2015/06/05 Javascript
Labelauty?jQuery单选框/复选框美化插件分享
2015/09/26 Javascript
基于Bootstrap实现tab标签切换效果
2020/04/15 Javascript
微信小程序的分类页面制作
2017/06/27 Javascript
vue项目中使用ueditor的实例讲解
2018/03/05 Javascript
JS实现将链接生成二维码并转为图片的方法
2018/03/17 Javascript
bootstrap table表格插件之服务器端分页实例代码
2018/09/12 Javascript
原生JS实现旋转轮播图+文字内容切换效果【附源码】
2018/09/29 Javascript
快速对接payjq的个人微信支付接口过程解析
2019/08/15 Javascript
javascript异常处理实现原理详解
2020/02/17 Javascript
Javascript ParentNode和ChildNode接口原理解析
2020/03/16 Javascript
JavaScript实现简易计算器小功能
2020/10/22 Javascript
Python简单删除目录下文件以及文件夹的方法
2015/05/27 Python
分享一个简单的python读写文件脚本
2017/11/25 Python
完美解决python中ndarray 默认用科学计数法显示的问题
2018/07/14 Python
Python使用Selenium模块实现模拟浏览器抓取淘宝商品美食信息功能示例
2018/07/18 Python
Python3.5常见内置方法参数用法实例详解
2019/04/29 Python
Python弹出输入框并获取输入值的实例
2019/06/18 Python
python 数据生成excel导出(xlwt,wlsxwrite)代码实例
2019/08/23 Python
Python Matplotlib绘图基础知识代码解析
2020/08/31 Python
红头文件任命书范本
2014/06/05 职场文书
小学数学教研活动总结
2014/07/01 职场文书
超市七夕促销活动方案
2014/08/28 职场文书
公安机关正风肃纪剖析材料
2014/10/10 职场文书
2014年保洁员工作总结
2014/11/19 职场文书
研究生导师推荐信
2015/03/25 职场文书
小学运动会宣传稿
2015/07/23 职场文书
如何解决php-fpm启动不了问题
2021/11/17 PHP