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 相关文章推荐
用roll.js实现的图片自动滚动+鼠标触动的特效
Mar 18 Javascript
javascript中一些util方法汇总
Jun 10 Javascript
jQuery隐藏和显示效果实现
Apr 06 Javascript
js精准的倒计时函数分享
Jun 29 Javascript
Javascript单例模式的介绍和实例
Oct 08 Javascript
浅析vue数据绑定
Jan 17 Javascript
React入门教程之Hello World以及环境搭建详解
Jul 11 Javascript
JavaScript动态绑定详解
Sep 14 Javascript
JS实现基于拖拽改变物体大小的方法
Jan 23 Javascript
小程序显示弹窗时禁止下层的内容滚动实现方法
Mar 20 Javascript
Vue 幸运大转盘实现思路详解
May 06 Javascript
Vue鼠标滚轮滚动切换路由效果的实现方法
Aug 04 Vue.js
深入理解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/03/02 星际争霸
使用pthreads实现真正的PHP多线程(需PHP5.3以上版本)
2014/05/05 PHP
解决cPanel无法安装php5.2.17
2014/06/22 PHP
PHP实现将优酷土豆腾讯视频html地址转换成flash swf地址的方法
2017/08/04 PHP
原生JS实现Ajax通过GET方式与PHP进行交互操作示例
2018/05/12 PHP
JavaScript面向对象编程
2008/03/02 Javascript
根据选择不同的下拉值出现相对应的文本输入框
2013/08/01 Javascript
JavaScript获取数组最小值和最大值的方法
2015/06/09 Javascript
jquery图片滚动放大代码分享(2)
2015/08/28 Javascript
javaScript数组迭代方法详解
2016/04/14 Javascript
JS实现显示带倒影的图片横排居中放大展示特效实例【测试可用】
2016/08/23 Javascript
总结Javascript中数组各种去重的方法
2016/10/04 Javascript
vue实现动态数据绑定
2017/04/28 Javascript
使用JQuery实现图片轮播效果的实例(推荐)
2017/10/24 jQuery
不使用JavaScript实现菜单的打开和关闭效果demo
2018/05/01 Javascript
原生js实现淘宝放大镜效果
2020/10/28 Javascript
js实现上传按钮并显示缩略图小轮子
2020/05/04 Javascript
VUE Elemen-ui之穿梭框使用方法详解
2021/01/19 Javascript
[02:30]联想杯DOTA2完美世界全国高校联赛—北京站现场
2015/11/16 DOTA
用Python编写一个简单的Lisp解释器的教程
2015/04/03 Python
简单掌握Python的Collections模块中counter结构的用法
2016/07/07 Python
Python常用内置模块之xml模块(详解)
2017/05/23 Python
Windows下python3.6.4安装教程
2018/07/31 Python
Python爬虫常用小技巧之设置代理IP
2018/09/13 Python
Django rest framework分页接口实现原理解析
2020/08/21 Python
基于python tkinter的点名小程序功能的实例代码
2020/08/22 Python
python向企业微信发送文字和图片消息的示例
2020/09/28 Python
C#如何调用Word并打开一个Word文档
2013/05/08 面试题
毕业实习评语
2014/02/10 职场文书
认错检讨书
2014/10/02 职场文书
2015年置业顾问工作总结
2015/04/07 职场文书
JS代码编译器Monaco使用方法
2021/06/11 Javascript
Spring Boot 启动、停止、重启、状态脚本
2021/06/26 Java/Android
Sleuth+logback 设置traceid 及自定义信息方式
2021/07/26 Java/Android
HTML+CSS实现导航条下拉菜单的示例代码
2021/08/02 HTML / CSS
基于Redission的分布式锁实战
2022/08/14 Redis