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 相关文章推荐
Bookmarklet实现启动jQuery(模仿 云输入法)
Sep 15 Javascript
jquery mobile事件多次绑定示例代码
Sep 13 Javascript
简单的js表单验证函数
Oct 28 Javascript
让checkbox不选中即将选中的checkbox不选中
Jul 11 Javascript
从数据库读取数据后将其输出成html标签的三种方法
Oct 13 Javascript
JavaScript 动态加载脚本和样式的方法
Apr 13 Javascript
史上最全JavaScript常用的简写技巧(推荐)
Aug 17 Javascript
vue中component组件的props使用详解
Sep 04 Javascript
讲解vue-router之命名路由和命名视图
May 28 Javascript
JavaScript深入V8引擎以及编写优化代码的5个技巧
Jun 24 Javascript
layUI使用layer.open,在content打开数据表格,获取值并返回的方法
Sep 26 Javascript
JS如何实现在弹出窗口中加载页面
Dec 03 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
中英文字符串翻转函数
2008/12/09 PHP
让的PHP代码飞起来的40条小技巧(提升php效率)
2010/04/12 PHP
将一维或多维的数组连接成一个字符串的php代码
2010/08/08 PHP
php学习之function的用法
2012/07/14 PHP
PHP积分兑换接口实例
2015/02/09 PHP
PHP7如何开启Opcode打造强悍性能详解
2018/05/11 PHP
基于PHP实现生成随机水印图片
2020/12/09 PHP
javascript面向对象程序设计(一)
2015/01/29 Javascript
详解Javascript事件驱动编程
2016/01/03 Javascript
sencha ext js 6 快速入门(必看)
2016/06/01 Javascript
详解Vue用自定义指令完成一个下拉菜单(select组件)
2017/10/31 Javascript
vue自定义过滤器创建和使用方法详解
2017/11/06 Javascript
使用async、enterproxy控制并发数量的方法详解
2018/01/02 Javascript
Vue实现点击箭头上下移动效果
2020/06/11 Javascript
浅谈vue获得后台数据无法显示到table上面的坑
2020/08/13 Javascript
js实现购物车商品数量加减
2020/09/21 Javascript
JavaScript实现通讯录功能
2020/12/27 Javascript
[02:28]DOTA2英雄基础教程 狼人
2013/12/23 DOTA
[55:03]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第二场 11.20
2020/11/20 DOTA
Python3 入门教程 简单但比较不错
2009/11/29 Python
python代码检查工具pylint 让你的python更规范
2012/09/05 Python
Python的__builtin__模块中的一些要点知识
2015/05/02 Python
Nginx搭建HTTPS服务器和强制使用HTTPS访问的方法
2015/08/16 Python
python使用正则表达式匹配字符串开头并打印示例
2017/01/11 Python
用Python设计一个经典小游戏
2017/05/15 Python
python利用socketserver实现并发套接字功能
2018/01/26 Python
python自动发邮件库yagmail的示例代码
2018/02/23 Python
CentOS7下python3.7.0安装教程
2018/07/30 Python
Python3编码问题 Unicode utf-8 bytes互转方法
2018/10/26 Python
python实现windows壁纸定期更换功能
2019/01/21 Python
使用Python的turtle模块画国旗
2019/09/24 Python
GafasWorld西班牙:购买太阳镜、眼镜和隐形眼镜
2019/09/08 全球购物
证婚人经典证婚词
2014/01/09 职场文书
就业协议书的作用
2014/04/11 职场文书
商业企业管理专业求职信
2014/07/10 职场文书
解析目标检测之IoU
2021/06/26 Python