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代码
Mar 25 Javascript
删除select中所有option选项jquery代码
Aug 12 Javascript
javascript中的document.open()方法使用介绍
Oct 09 Javascript
js自动生成对象的属性示例代码
Oct 28 Javascript
jQuery实现响应鼠标事件的图片透明效果【附demo源码下载】
Jun 16 Javascript
jquery表单插件Autotab使用方法详解
Jun 24 Javascript
Vue-Router进阶之滚动行为详解
Sep 13 Javascript
让bootstrap的carousel支持滑动滚屏的实现代码
Nov 27 Javascript
vue  自定义组件实现通讯录功能
Sep 30 Javascript
对angularjs框架下controller间的传值方法详解
Oct 08 Javascript
使用layui的router来进行传参的实现方法
Sep 06 Javascript
Vue OpenLayer测距功能的实现
Apr 20 Vue.js
封装获取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
支持中文的php加密解密类代码
2011/11/27 PHP
jquery.boxy插件的iframe扩展代码
2010/07/02 Javascript
使用Jquery打造最佳用户体验的登录页面的实现代码
2011/07/08 Javascript
ExtJs Excel导出并下载IIS服务器端遇到的问题
2011/09/16 Javascript
NODE.JS加密模块CRYPTO常用方法介绍
2014/06/05 Javascript
jquery插件star-rating.js实现星级评分特效
2015/04/15 Javascript
详解js图片轮播效果实现原理
2015/12/17 Javascript
vue,angular,avalon这三种MVVM框架优缺点
2016/04/27 Javascript
JS修改地址栏参数实例代码
2016/06/14 Javascript
你知道setTimeout是如何运行的吗?
2016/08/16 Javascript
jQuery插件FusionCharts实现的2D饼状图效果【附demo源码下载】
2017/03/03 Javascript
详解如何提高 webpack 构建 Vue 项目的速度
2017/07/03 Javascript
javascript计算对象长度的方法
2017/10/25 Javascript
vue实现todolist基本功能以及数据存储功能实例详解
2019/04/11 Javascript
用js简单提供增删改查接口
2019/05/12 Javascript
小程序实现图片预览裁剪插件
2019/11/22 Javascript
JavaScript实现像雪花一样的Hexaflake分形
2020/07/07 Javascript
vue制作toast组件npm包示例代码
2020/10/29 Javascript
[03:05]《我与DAC》之xiao8:DAC与BG
2018/03/27 DOTA
[01:00:52]2018DOTA2亚洲邀请赛 4.4 淘汰赛 EG vs LGD 第一场
2018/04/05 DOTA
Python连接Mssql基础教程之Python库pymssql
2018/09/16 Python
python中的单引号双引号区别知识点总结
2019/06/23 Python
Python实现的ftp服务器功能详解【附源码下载】
2019/06/26 Python
利用 Flask 动态展示 Pyecharts 图表数据方法小结
2019/09/04 Python
K最近邻算法(KNN)---sklearn+python实现方式
2020/02/24 Python
详解用Python爬虫获取百度企业信用中企业基本信息
2020/07/02 Python
python实现PolynomialFeatures多项式的方法
2021/01/06 Python
利用css3-animation实现逐帧动画效果
2016/03/10 HTML / CSS
深入浅析HTML5中的article和section的区别
2018/05/15 HTML / CSS
杭州时比特电子有限公司SQL
2013/08/22 面试题
乡镇一岗双责责任书
2015/01/29 职场文书
情人节活动总结范文
2015/02/05 职场文书
综合素质评价思想道德自我评价
2015/03/09 职场文书
学校计划生育责任书
2015/05/09 职场文书
经典祝酒词大全
2015/08/12 职场文书
在HTML5 localStorage中存储对象的示例代码
2021/04/21 Javascript