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 相关文章推荐
如何让DIV可编辑、可拖动示例代码
Sep 18 Javascript
浅析JS中document对象的一些重要属性
Mar 06 Javascript
jquery列表拖动排列(由项目提取相当好用)
Jun 17 Javascript
JavaScript实现的encode64加密算法实例分析
Apr 15 Javascript
HTML5实现留言和回复页面样式
Jul 22 Javascript
JavaScript类型检测之typeof 和 instanceof 的缺陷与优化
Jan 13 Javascript
JS在一定时间内跳转页面及各种刷新页面的实现方法
May 26 Javascript
Angular2表单自定义验证器的实现
Oct 19 Javascript
微信小程序滚动Tab实现左右可滑动切换
Aug 17 Javascript
基于匀速运动的实例讲解(侧边栏,淡入淡出)
Oct 17 Javascript
vue实例中data使用return包裹的方法
Aug 27 Javascript
React配置子路由的实现
Jun 03 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来改写404错误页让你的页面更友好
2013/01/24 PHP
php比较两个绝对时间的大小
2014/01/31 PHP
PH P5.2至5.5、5.6的新增功能详解
2014/07/14 PHP
typecho插件编写教程(二):写一个新插件
2015/05/28 PHP
JQuery的Alert消息框插件使用介绍
2010/10/09 Javascript
用JavaScript实现动画效果的方法
2013/07/20 Javascript
JavaScript中split() 使用方法汇总
2015/04/17 Javascript
简介JavaScript中的push()方法的使用
2015/06/09 Javascript
jquery实现顶部向右伸缩的导航区域代码
2015/09/02 Javascript
基于JavaScript获取鼠标位置的各种方法
2015/12/16 Javascript
js密码强度实时检测代码
2016/03/02 Javascript
jquery 全选、全不选、反选效果的实现代码【推荐】
2016/05/05 Javascript
vue2.0 自定义 饼状图 (Echarts)组件的方法
2018/03/02 Javascript
JS与CSS3实现图片响应鼠标移动放大效果示例
2018/05/04 Javascript
Element-ui之ElScrollBar组件滚动条的使用方法
2018/09/14 Javascript
在Node.js下运用MQTT协议实现即时通讯及离线推送的方法
2019/01/24 Javascript
浅析vue中的provide / inject 有什么用处
2019/11/10 Javascript
原生js无缝轮播插件使用详解
2020/03/09 Javascript
[02:32]DOTA2英雄基础教程 祸乱之源
2013/12/23 DOTA
[33:39]DOTA2上海特级锦标赛C组小组赛#2 LGD VS Newbee第二局
2016/02/27 DOTA
Python中一行和多行import模块问题
2018/04/01 Python
10 行Python 代码实现 AI 目标检测技术【推荐】
2019/06/14 Python
pyinstaller打包多个py文件和去除cmd黑框的方法
2019/06/21 Python
python面试题之列表声明实例分析
2019/07/08 Python
pytorch载入预训练模型后,实现训练指定层
2020/01/06 Python
python爬取音频下载的示例代码
2020/10/19 Python
css3 矩阵的使用详解
2018/03/20 HTML / CSS
French Connection官网:女装、男装及家居用品
2019/03/18 全球购物
酒店管理自荐信
2013/10/23 职场文书
行政部主管岗位职责
2013/12/28 职场文书
新闻发布会主持词
2014/03/28 职场文书
2015年教务主任工作总结
2015/07/22 职场文书
2019年房屋委托租赁合同范本(通用版)!
2019/07/17 职场文书
图片批量处理 - 尺寸、格式、水印等
2022/03/07 杂记
Java中Dijkstra(迪杰斯特拉)算法
2022/05/20 Java/Android
Centos7 Shell编程之正则表达式、文本处理工具详解
2022/08/05 Servers