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 相关文章推荐
自己做的模拟模态对话框实现代码
May 23 Javascript
当达到输入长度时表单自动切换焦点
Apr 06 Javascript
jQuery页面加载初始化常用的三种方法
Jun 04 Javascript
浅谈jQuery页面的滚动位置scrollTop、scrollLeft
May 19 Javascript
jQuery插入节点和移动节点用法示例(insertAfter、insertBefore方法)
Sep 08 Javascript
bootstrap模态框实现拖拽效果
Dec 14 Javascript
Node.js利用js-xlsx处理Excel文件的方法详解
Jul 05 Javascript
js自定义input文件上传样式
Oct 26 Javascript
koa2使用ejs和nunjucks作为模板引擎的使用
Nov 27 Javascript
关于vue-cli 3配置打包优化要点(推荐)
Apr 22 Javascript
Typescript 中的 interface 和 type 到底有什么区别详解
Jun 18 Javascript
JavaScript获取URL参数的方法分享
Apr 07 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
配置Apache2.2+PHP5+CakePHP1.2+MySQL5运行环境
2009/04/25 PHP
JoshChen_php新手进阶高手不可或缺的规范介绍
2013/08/16 PHP
PHP基于cookie与session统计网站访问量并输出显示的方法
2016/01/15 PHP
PHP生成和获取XML格式数据的方法
2016/03/04 PHP
Symfony2中被遗弃的getRequest()方法分析
2016/03/17 PHP
关于PHP内置的字符串处理函数详解
2017/02/04 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式一图文详解
2019/04/09 PHP
收集的10个免费的jQuery相册
2011/02/26 Javascript
通过正则格式化url查询字符串实现代码
2012/12/28 Javascript
解析window.open的使用方法总结
2013/06/19 Javascript
JavaScript简单实现网页回到顶部功能
2013/11/12 Javascript
采用call方式实现js继承
2014/05/20 Javascript
jQuery中Form相关知识汇总
2015/01/06 Javascript
jQuery学习笔记之创建DOM元素
2015/01/19 Javascript
js实现上传图片及时预览
2016/05/07 Javascript
AngularJS基础 ng-src 指令简单示例
2016/08/03 Javascript
详解vue-cli 本地开发mock数据使用方法
2018/05/29 Javascript
JS实现的JSON序列化操作简单示例
2018/07/02 Javascript
详解vue中多个有顺序要求的异步操作处理
2019/10/29 Javascript
vue cli3 配置proxy代理无效的解决
2019/10/30 Javascript
[04:32]DOTA2著名解说配音敌法师 现场专访海涛怒切假腿
2013/12/20 DOTA
Windows系统下安装Python的SSH模块教程
2015/02/05 Python
对python判断ip是否可达的实例详解
2019/01/31 Python
python matplotlib库直方图绘制详解
2019/08/10 Python
Python range、enumerate和zip函数用法详解
2019/09/11 Python
Python Django框架模板渲染功能示例
2019/11/08 Python
python如何通过闭包实现计算器的功能
2020/02/22 Python
HTML5是什么 HTML5是什么意思 HTML5简介
2012/10/26 HTML / CSS
HTML5 canvas基本绘图之绘制曲线
2016/06/27 HTML / CSS
芬兰汽车配件商店:Autonvaraosat24
2017/01/30 全球购物
12月小学生校园广播稿
2014/02/04 职场文书
领导班子在批评与自我批评座谈会上的发言
2014/09/28 职场文书
纪委书记群众路线整改措施思想汇报
2014/10/09 职场文书
圆明园纪录片观后感
2015/06/03 职场文书
实习证明模板
2015/06/16 职场文书
初中政治教师教学反思
2016/02/23 职场文书