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 相关文章推荐
mapper--图片热点区域高亮组件官方站点
Dec 22 Javascript
javascript 计算两个整数的百分比值
Dec 26 Javascript
用jquery实现学校的校历(asp.net+jquery ui 1.72)
Jan 01 Javascript
jQuery的12招常用技巧分享
Aug 08 Javascript
jQuery .attr()和.removeAttr()方法操作元素属性示例
Jul 16 Javascript
给超链接添加特效鼠标移动展示提示信息且随鼠标移动
Oct 17 Javascript
PHP abstract与interface之间的区别
Nov 11 Javascript
react-router JS 控制路由跳转实例
Jun 15 Javascript
JavaScript中如何判断一个值的类型
Sep 15 Javascript
深入浅析vue组件间事件传递
Dec 29 Javascript
javascrit中undefined和null的区别详解
Apr 07 Javascript
react MPA 多页配置详解
Oct 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
Packer 3.0 JS压缩及混淆工具 下载
2007/05/03 Javascript
多浏览器支持的右下角浮动窗口
2010/04/01 Javascript
jquery单行文字向上滚动效果的实现代码
2014/09/05 Javascript
jQuery切换所有复选框选中状态的方法
2015/07/02 Javascript
javascript实现checkbox复选框实例代码
2016/01/10 Javascript
jQuery插件FusionCharts实现的2D面积图效果示例【附demo源码下载】
2017/03/06 Javascript
Vue2.x中的Render函数详解
2017/05/30 Javascript
jquery请求servlet实现ajax异步请求的示例
2017/06/03 jQuery
Angular 4依赖注入学习教程之InjectToken的使用(八)
2017/06/04 Javascript
强大的JavaScript响应式图表Chartist.js的使用
2017/09/13 Javascript
微信小程序常用赋值方法小结
2019/04/30 Javascript
layui实现根据table数据判断按钮显示情况的方法
2019/09/26 Javascript
jquery实现烟花效果(面向对象)
2020/03/10 jQuery
vue单元格多列合并的实现
2020/11/26 Vue.js
[03:49]DOTA2英雄基础教程 光之守卫
2014/01/14 DOTA
[44:50]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第二局
2016/02/26 DOTA
[38:32]DOTA2上海特级锦标赛A组资格赛#2 Secret VS EHOME第二局
2016/02/26 DOTA
基于pip install django失败时的解决方法
2018/06/12 Python
Python实现爬虫抓取与读写、追加到excel文件操作示例
2018/06/27 Python
python 文件转成16进制数组的实例
2018/07/09 Python
Pycharm代码无法复制,无法选中删除,无法编辑的解决方法
2018/10/22 Python
python爬取天气数据的实例详解
2020/11/20 Python
微信端html5页面调用分享接口示例
2018/03/14 HTML / CSS
英国领先的葡萄酒专家:Majestic Wine
2017/05/30 全球购物
市场营销专业毕业生自荐信
2013/11/02 职场文书
大学生自荐信
2013/12/11 职场文书
运动会领导邀请函
2014/01/10 职场文书
二手书店创业计划书
2014/01/16 职场文书
党员创先争优公开承诺书
2014/03/28 职场文书
期中考试反思800字
2014/05/01 职场文书
七夕情人节促销方案
2014/06/07 职场文书
维稳工作承诺书
2015/01/20 职场文书
投标承诺函格式
2015/01/21 职场文书
店铺转让协议书
2015/01/29 职场文书
2015年度校学生会工作总结报告
2015/05/23 职场文书
Html5调用企业微信的实现
2021/04/16 HTML / CSS