JavaScript中常见获取元素的方法汇总


Posted in Javascript onMarch 04, 2015

常见的获取元素的方法有3种,分别是通过元素ID、通过标签名字和通过类名字来获取。

getElementById

DOM提供了一个名为getElementById的方法,这个方法将返回一个与之对应id属性的节点对象。使用的时候请注意区分大小写。

它是document对象特有的函数,只能通过其来调用该方法。其使用的方法如下:

document.getElementById('demo') //demo是元素对应的ID

该方法兼容主流浏览器,甚至包括IE6+,可以大胆使用。

getElementsByTagName

该方法返回一个对象数组(准确的说是HTMLCollection集合,它不是真正意义上的数组),每个对象分别对应着文档里有着给定标签的一个元素。类似于getElementById,同样,该方法只提供一个参数,它的参数是指定标签的名字,示例代码如下:

document.getElementsByTagname('li')  //li是标签的名字

需要注意的是,该方法除了能被document对象调用之外,还可以被普通的元素调用。示例如下:

var demo = document.getElementById('demo');

var lis = demo.getElementsByTagname('li');    

同样,该方法兼容主流浏览器,甚至包括IE6+,可以大胆使用。

getElementsByClassName

除了通过指定标签获取元素外,DOM还提供了getElementsByClassName方法来获取指定class名的元素。不过由于该方法比较新,较老的浏览器还不支持,比如IE6。不过我们可以通过hack方式来弥补老浏览器缺陷。该方法调用的方式如下所示:

document.getElementsByClassName('demo')    //demo为元素指定的class名

和getElementsByTagname一样, 该方法除了能被document对象调用之外,还可以被普通的元素调用。

对于比较老的浏览器,比如IE6、7我们可以通过下面的hack方式来实现:

function getElementsByClassName(node,classname){

        if(node.getElementsByClassName) {

            return node.getElementsByClassName(classname);

        }else {

            var results = [];

            var elems = node.getElementsByTagName("*");

            for(var i = 0; i < elems.length; i++){

                if(elems[i].className.indexOf(classname) != -1){

                    results[results.length] = elems[i];

                }

            }

            return results;

        }

    }  

拓展

如果你不仅仅满足上面那些元素选择的方法,想和JQuery一样,能通过选择器来获取元素,实现的方法和上面的getElementsByClassName差不多,如果有兴趣自己可以实现一套选择器。不过我觉得有上面的三个方法再结合事件冒泡,已经够用了,毕竟这三种性能上算是优秀的。

以上就是本文的全部内容了,希望对大家能够有所帮助。

Javascript 相关文章推荐
最佳JS代码编写的14条技巧
Jan 09 Javascript
JavaScript转换农历类实现及调用方法
Jan 27 Javascript
jquery 层次选择器siblings与nextAll的区别介绍
Aug 02 Javascript
jquery通过ajax加载一段文本内容的方法
Jan 15 Javascript
JavaScript中的立即执行函数表达式介绍
Mar 15 Javascript
使用AmplifyJS组件配合JavaScript进行编程的指南
Jul 28 Javascript
通过js获取上传的图片信息(临时保存路径,名称,大小)然后通过ajax传递给后端的方法
Oct 01 Javascript
js实现界面向原生界面发消息并跳转功能
Nov 22 Javascript
js判断手机系统是android还是ios
Mar 07 Javascript
微信小程序实战之轮播图(3)
Apr 17 Javascript
vue.js图片转Base64上传图片并预览的实现方法
Aug 02 Javascript
在JavaScript中如何使用宏详解
May 06 Javascript
深入理解JavaScript系列(17):面向对象编程之概论详细介绍
Mar 04 #Javascript
JavaScript设置获取和设置属性的方法
Mar 04 #Javascript
深入理解JavaScript系列(50):Function模式(下篇)
Mar 04 #Javascript
深入探讨javascript中的数据类型
Mar 04 #Javascript
深入理解JavaScript系列(49):Function模式(上篇)
Mar 04 #Javascript
js实现百度联盟中一款不错的图片切换效果完整实例
Mar 04 #Javascript
jQuery中大家不太了解的几个方法
Mar 04 #Javascript
You might like
php 无限分类的树类代码
2009/12/03 PHP
php 获取当前访问的url文件名的方法小结
2010/02/08 PHP
phpmyadmin安装时提示:Warning: require_once(./libraries/common.inc.php)错误解决办法
2011/08/18 PHP
一个完整的PHP类包含的七种语法说明
2015/06/04 PHP
Zend Framework动作助手Url用法详解
2016/03/05 PHP
PHP笛卡尔积实现算法示例
2018/07/30 PHP
Laravel-添加后台模板AdminLte的实现方法
2019/10/08 PHP
laravel 错误处理,接口错误返回json代码
2019/10/25 PHP
PHP实现抽奖功能实例代码
2020/06/30 PHP
jquery无刷新验证邮箱地址实现实例
2014/02/19 Javascript
鼠标左键单击冲突的问题解决方法(防止冒泡)
2014/05/14 Javascript
js焦点文字滚动效果代码分享
2015/08/25 Javascript
跟我学习javascript的作用域与作用域链
2015/11/19 Javascript
jQuery弹层插件jquery.fancybox.js用法实例
2016/01/22 Javascript
NodeJS的Promise的用法解析
2016/05/05 NodeJs
jquery注册文本框获取焦点清空,失去焦点赋值的简单实例
2016/09/08 Javascript
AngularJs ng-repeat 嵌套如何获取外层$index
2016/09/21 Javascript
JS中把函数作为另一函数的参数传递方法(总结)
2017/06/28 Javascript
VUE2 前端实现 静态二级省市联动选择select的示例
2018/02/09 Javascript
[50:01]Ti4 冒泡赛第二天 NEWBEE vs Titan
2014/07/15 DOTA
Python 含参构造函数实例详解
2017/05/25 Python
Python实现字符串逆序输出功能示例
2017/06/24 Python
Python循环结构的应用场景详解
2019/07/11 Python
使用IPython或Spyder将省略号表示的内容完整输出
2020/04/20 Python
python Socket网络编程实现C/S模式和P2P
2020/06/22 Python
python 绘制场景热力图的示例
2020/09/23 Python
html5 浏览器支持 如何让所有的浏览器都支持HTML5标签样式
2012/12/07 HTML / CSS
html5跳转小程序wx-open-launch-weapp踩坑
2020/12/02 HTML / CSS
学生实习介绍信
2014/01/15 职场文书
幼教简历自我评价
2014/01/28 职场文书
房屋租赁协议书
2014/04/10 职场文书
端午节活动总结
2014/08/26 职场文书
个人批评与自我批评范文
2014/10/17 职场文书
golang 比较浮点数的大小方式
2021/05/02 Golang
C3 线性化算法与 MRO之Python中的多继承
2021/10/05 Python
Android中的Launch Mode详情
2022/06/05 Java/Android