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 相关文章推荐
由prototype_1.3.1进入javascript殿堂-类的初探
Nov 06 Javascript
css把超出的部分显示为省略号的方法兼容火狐
Jul 23 Javascript
基于jQuery的仿flash的广告轮播
Nov 05 Javascript
javascript中数组中求最大值示例代码
Dec 18 Javascript
$.each遍历对象、数组的属性值并进行处理
Jul 18 Javascript
jquery实现全屏滚动
Dec 28 Javascript
JS异步文件上传(兼容IE8+)
Apr 02 Javascript
Vue-cli proxyTable 解决开发环境的跨域问题详解
May 18 Javascript
jQuery滚动插件scrollable.js用法分析
May 25 jQuery
vue 系列——vue2-webpack2框架搭建踩坑之路
Dec 22 Javascript
说说Vuex的getters属性的具体用法
Apr 15 Javascript
Vue基于iview实现登录密码的显示与隐藏功能
Mar 06 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
在Yii框架中使用PHP模板引擎Twig的例子
2014/06/13 PHP
laravel中的一些简单实用功能
2018/11/03 PHP
laravel框架语言包拓展实现方法分析
2019/11/22 PHP
运用Windows XP附带的Msicuu.exe、Msizap.exe来彻底卸载顽固程序
2007/04/21 Javascript
document.documentElement的一些使用技巧
2013/04/18 Javascript
jquery遍历之parent()和parents()的区别及parentsUntil()方法详解
2013/12/02 Javascript
JavaScript插件化开发教程 (三)
2015/01/27 Javascript
js实现正则匹配中文标点符号的方法
2015/12/23 Javascript
jQuery.form.js插件不能解决连接超时(timeout)的原因分析及解决方法
2016/10/14 Javascript
JavaScript实现左右下拉框动态增删示例
2017/03/09 Javascript
Vue和Bootstrap的整合思路详解
2017/06/30 Javascript
angular使用bootstrap方法手动启动的实例代码
2017/07/18 Javascript
JavaScript模拟文件拖选框样式v1.0的实例
2017/08/04 Javascript
解决koa2 ctx.render is not a function报错问题
2018/08/07 Javascript
微信小程序日历组件使用方法详解
2018/12/29 Javascript
vue 实现购物车总价计算
2019/11/06 Javascript
JavaScript回调函数callback用法解析
2020/01/14 Javascript
在vue中嵌入外部网站的实现
2020/11/13 Javascript
vue单元格多列合并的实现
2020/11/26 Vue.js
js+for循环实现字符串自动转义的代码(把后面的字符替换前面的字符)
2020/12/24 Javascript
Flask SQLAlchemy一对一,一对多的使用方法实践
2013/02/10 Python
Python将多个excel表格合并为一个表格
2021/02/22 Python
python解析html提取数据,并生成word文档实例解析
2018/01/22 Python
python制作填词游戏步骤详解
2019/05/05 Python
Python发展简史 Python来历
2019/05/14 Python
VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的方法详解
2019/07/01 Python
Python Collatz序列实现过程解析
2019/10/12 Python
在python shell中运行python文件的实现
2019/12/21 Python
一文读懂Python 枚举
2020/08/25 Python
CSS3 Columns分列式布局方法简介
2014/05/03 HTML / CSS
什么是类的返射机制
2016/02/06 面试题
化学学院毕业生自荐信范文
2013/12/17 职场文书
支部书记四风问题自我剖析材料
2014/09/29 职场文书
2016年七夕爱情寄语
2015/12/04 职场文书
html5实现点击弹出图片功能
2021/07/16 HTML / CSS
电脑关机速度很慢怎么办 提升电脑关机速度设置教程
2022/04/08 数码科技