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 相关文章推荐
转换json格式的日期为Javascript对象的函数
Jul 13 Javascript
js对象内部访问this修饰的成员函数示例
Apr 27 Javascript
每日十条JavaScript经验技巧(二)
Jun 23 Javascript
jquery 判断selection range 是否在容器中的简单实例
Aug 02 Javascript
jQuery搜索框效果实现代码(百度关键词联想)
Feb 25 Javascript
js HTML5多图片上传及预览实例解析(不含前端的文件分割)
Aug 26 Javascript
原生js图片轮播效果实现代码
Oct 19 Javascript
Ionic2调用本地SQlite实例
Apr 22 Javascript
pm2 部署 node的三种方法示例
Oct 20 Javascript
Angular2的管道Pipe的使用方法
Nov 07 Javascript
微信小程序使用audio组件播放音乐功能示例【附源码下载】
Dec 08 Javascript
layui 上传插件 带预览 非自动上传功能的实例(非常实用)
Sep 23 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动态图像的创建
2006/10/09 PHP
openPNE常用方法分享
2011/11/29 PHP
php构造函数的继承方法
2015/02/09 PHP
PHP内存使用情况如何获取
2015/10/10 PHP
浅谈laravel orm 中的一对多关系 hasMany
2019/10/21 PHP
JS 中document.URL 和 windows.location.href 的区别
2009/11/11 Javascript
JavaScript String.replace函数参数实例说明
2013/06/06 Javascript
可自己添加html的伪弹出框实现代码
2013/09/08 Javascript
js 剪切板应用clipboardData详细解析
2013/12/17 Javascript
javascript创建和存储cookie示例
2014/01/07 Javascript
javascript 控制input只允许输入的各种指定内容
2014/06/19 Javascript
JavaScript实现的链表数据结构实例
2015/04/02 Javascript
HTML5之WebSocket入门3 -通信模型socket.io
2015/08/21 Javascript
JS深度拷贝Object Array实例分析
2016/03/31 Javascript
解决JS组件bootstrap table分页实现过程中遇到的问题
2016/04/21 Javascript
用jQuery向div中添加Html文本内容的简单实现
2016/07/13 Javascript
使用jQuery的load方法设计动态加载及解决被加载页面js失效问题
2017/03/01 Javascript
手机端转换rem适应
2017/04/01 Javascript
解决vue-cli webpack打包后加载资源的路径问题
2018/09/25 Javascript
记录一次完整的react hooks实践
2019/03/11 Javascript
vue+vuex+axios从后台获取数据存入vuex,组件之间共享数据操作
2020/07/31 Javascript
[03:18]DOTA2亚洲邀请赛小组赛第一日 RECAP赛事回顾
2015/01/30 DOTA
[46:04]Liquid vs VP Supermajor决赛 BO 第四场 6.10
2018/07/05 DOTA
[42:06]2019国际邀请赛全明星赛 8.23
2019/09/05 DOTA
Python数据结构与算法之图的基本实现及迭代器实例详解
2017/12/12 Python
python实现翻转棋游戏(othello)
2019/07/29 Python
python 获取当前目录下的文件目录和文件名实例代码详解
2020/03/10 Python
python中的插入排序的简单用法
2021/01/19 Python
关于iframe跨域使用postMessage的实现
2019/10/29 HTML / CSS
佛罗里达州印第安河新鲜水果:Hale Groves
2017/02/20 全球购物
荷兰包包购物网站:The Little Green Bag
2018/03/17 全球购物
马来西亚网上花店:FlowerAdvisor马来西亚
2020/01/03 全球购物
上海天奕面试题笔试题
2015/04/19 面试题
材料物理专业求职信
2014/09/01 职场文书
2014年工会工作总结
2014/11/12 职场文书
Python&Matlab实现灰狼优化算法的示例代码
2022/03/21 Python