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 相关文章推荐
javascript知识点收藏
Feb 22 Javascript
JQuery的Ajax中Post方法传递中文出现乱码的解决方法
Oct 21 Javascript
jQuery实现页面滚动时动态加载内容的方法
Mar 20 Javascript
Bootstrap选项卡与Masonry插件的完美结合
Jul 06 Javascript
JavaScript常用代码书写规范的超全面总结
Sep 11 Javascript
seajs学习教程之基础篇
Oct 20 Javascript
vue.js学习之递归组件
Dec 13 Javascript
jquery 校验中国身份证号码实例详解
Apr 11 jQuery
H5上传本地图片并预览功能
May 08 Javascript
关于vue2强制刷新,解决页面不会重新渲染的问题
Oct 29 Javascript
微信小程序服务器日期格式化问题
Jan 07 Javascript
vue使用svg文件补充-svg放大缩小操作(使用d3.js)
Sep 22 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
php的一个登录的类 [推荐]
2007/03/16 PHP
php环境配置 php5 MySQL5 apache2 phpmyadmin安装与配置图文教程
2007/03/16 PHP
PHP Zip压缩 在线对文件进行压缩的函数
2010/05/26 PHP
php数组一对一替换实现代码
2012/08/31 PHP
php生成二维码时出现中文乱码的解决方法
2014/12/18 PHP
Yii2针对指定url的生成及图片等的引入方法小结
2016/07/18 PHP
PHP中遍历数组的三种常用方法实例分析
2019/06/24 PHP
Javascript 面向对象 对象(Object)
2010/05/13 Javascript
从面试题学习Javascript 面向对象(创建对象)
2012/03/30 Javascript
JS.getTextContent(element,preformatted)使用介绍
2013/09/21 Javascript
nodejs简单实现中英文翻译
2015/05/04 NodeJs
Html中 IFrame的用法及注意点
2016/12/22 Javascript
Bootstrap面板学习使用
2017/02/09 Javascript
详解vue-router基本使用
2017/04/18 Javascript
Vue学习笔记进阶篇之过渡状态详解
2017/07/14 Javascript
weui框架实现上传、预览和删除图片功能代码
2017/08/24 Javascript
jQuery响应滚动条事件功能示例
2017/10/14 jQuery
详解使用create-react-app快速构建React开发环境
2018/05/16 Javascript
js遍历详解(forEach, map, for, for...in, for...of)
2019/08/28 Javascript
[01:17]辉夜杯战队访谈宣传片—EHOME
2015/12/25 DOTA
[03:16]DOTA2完美大师赛主赛事首日集锦
2017/11/23 DOTA
[07:37]DOTA2-DPC中国联赛2月2日Recap集锦
2021/03/11 DOTA
测试、预发布后用python检测网页是否有日常链接
2014/06/03 Python
Python中的一些陷阱与技巧小结
2015/07/10 Python
运用Python的webbrowser实现定时打开特定网页
2019/02/21 Python
python通过paramiko复制远程文件及文件目录到本地
2019/04/30 Python
使用python socket分发大文件的实现方法
2019/07/08 Python
django多对多表的创建,级联删除及手动创建第三张表
2019/07/25 Python
Python 可变类型和不可变类型及引用过程解析
2019/09/27 Python
深入浅析Python 函数注解与匿名函数
2020/02/24 Python
浅析NumPy 切片和索引
2020/09/02 Python
自我评价的写作规则
2014/01/06 职场文书
小学生家长评语集锦
2014/01/30 职场文书
后备干部培训方案
2014/05/22 职场文书
简单了解 MySQL 中相关的锁
2021/05/25 MySQL
《仙剑客栈2》第一弹正式宣传片公开 年内发售
2022/04/07 其他游戏