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中的undefined,null,&quot;&quot;,0和false
Mar 08 Javascript
javascript 写类方式之十
Jul 05 Javascript
jquery 批量上传图片实现代码
Jan 28 Javascript
javascript计算当月剩余天数(天数计算器)示例代码
Jan 09 Javascript
javascript获取和判断浏览器窗口、屏幕、网页的高度、宽度等
May 08 Javascript
jquery 操作css样式、位置、尺寸方法汇总
Nov 28 Javascript
Node.js Streams文件读写操作详解
Jul 04 Javascript
JS数组搜索之折半搜索实现方法分析
Mar 27 Javascript
javaScript手机号码校验工具类PhoneUtils详解
Dec 08 Javascript
vue toggle做一个点击切换class(实例讲解)
Mar 13 Javascript
详解操作虚拟dom模拟react视图渲染
Jul 25 Javascript
this.$toast() 了解一下?
Apr 18 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
《五等分的花嫁》漫画完结!2020年10月第2期TV动画制作组换血!
2020/03/06 日漫
探讨GDFONTPATH能否被winxp下的php支持
2013/06/21 PHP
PHP 过滤页面中的BOM(实现代码)
2013/06/29 PHP
PHP Session 变量的使用方法详解与实例代码
2013/09/11 PHP
PHP 字符串长度判断效率更高的方法
2014/03/02 PHP
Zend Framework教程之Zend_Controller_Plugin插件用法详解
2016/03/07 PHP
PHP的时间戳与具体时间转化的简单实现
2016/06/13 PHP
PHP Mysqli 常用代码集合
2016/11/12 PHP
PHP实现腾讯短网址生成api接口实例
2020/12/08 PHP
用jQuery实现一些导航条切换,显示隐藏的实例代码
2013/06/08 Javascript
jquery实现对联广告的方法
2015/02/05 Javascript
Jquery实现地铁线路指示灯提示牌效果的方法
2015/03/02 Javascript
JS+DIV+CSS实现仿表单下拉列表效果
2015/08/18 Javascript
jquery判断复选框选中状态以及区分attr和prop
2015/12/18 Javascript
JavaScript中数组去除重复的三种方法
2016/04/22 Javascript
详解angularJs中自定义directive的数据交互
2017/01/13 Javascript
JavaScript 数组去重并统计重复元素出现的次数实例
2017/12/14 Javascript
在Vue中创建可重用的 Transition的方法
2020/06/02 Javascript
vue实现在进行增删改操作后刷新页面
2020/08/05 Javascript
vue 接口请求地址前缀本地开发和线上开发设置方式
2020/08/13 Javascript
Python中除法使用的注意事项
2014/08/21 Python
wxPython事件驱动实例详解
2014/09/28 Python
Python if语句知识点用法总结
2018/06/10 Python
python 使用建议与技巧分享(四)
2020/08/18 Python
如何通过Python实现RabbitMQ延迟队列
2020/11/28 Python
利用css3 translate完美实现表头固定效果
2017/02/28 HTML / CSS
使用javascript和HTML5 Canvas画的四渐变色播放按钮效果
2014/04/10 HTML / CSS
HTML5新特性之语义化标签
2017/10/31 HTML / CSS
世界上最具创新性的增强型知名运动品牌:Proviz
2018/04/03 全球购物
美国奢侈品购物平台:Orchard Mile
2018/05/02 全球购物
枚举与#define宏的区别
2014/04/30 面试题
班风学风建设方案
2014/05/06 职场文书
保卫钓鱼岛口号
2014/06/20 职场文书
酒店总经理岗位职责
2015/04/01 职场文书
「月刊Comic Alive」2022年5月号封面公开
2022/03/21 日漫
python和C/C++混合编程之使用ctypes调用 C/C++的dll
2022/04/29 Python