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 相关文章推荐
JavaScript 面向对象的之私有成员和公开成员
May 04 Javascript
jQuery动态添加 input type=file的实现代码
Jun 14 Javascript
js实现的后台左侧管理菜单代码
Sep 11 Javascript
jQuery轻松实现表格的隔行变色和点击行变色的实例代码
May 09 Javascript
js 自带的 map() 方法全面了解
Aug 16 Javascript
javascript代码调试之console.log 用法图文详解
Sep 30 Javascript
jQuery-mobile事件监听与用法详解
Nov 23 Javascript
jQuery validate 验证radio实例
Mar 01 Javascript
JavaScript对象拷贝与赋值操作实例分析
Dec 10 Javascript
详解vue在项目中使用百度地图
Mar 26 Javascript
js实现弹出框的拖拽效果实例代码详解
Apr 16 Javascript
JS+css3实现幻灯片轮播图
Aug 14 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
改德生G88 - 加装等响度低音提升电路
2021/03/02 无线电
input file获得文件根目录简单实现
2013/04/26 PHP
PHP小教程之实现双向链表
2014/06/12 PHP
PHP GD库生成图像的几个函数总结
2014/11/19 PHP
thinkphp文件处理类Dir.class.php的用法分析
2014/12/08 PHP
Windows Server 2008 R2和2012中PHP连接MySQL过慢的解决方法
2016/07/02 PHP
Yii控制器中操作视图js的方法
2016/07/04 PHP
一个js写的日历(代码部分网摘)
2009/09/20 Javascript
关于javascript function对象那些迷惑分析
2011/10/24 Javascript
js实现iframe自动自适应高度的方法
2015/02/17 Javascript
【JS+CSS3】实现带预览图幻灯片效果的示例代码
2016/03/17 Javascript
全面了解javascript三元运算符
2016/06/27 Javascript
详细总结Javascript中的焦点管理
2016/09/17 Javascript
jQuery实现删除li节点的方法
2016/12/06 Javascript
Javascript前端经典的面试题及答案
2017/03/14 Javascript
Vue.js学习笔记之常用模板语法详解
2017/07/25 Javascript
BootStrap modal实现拖拽功能
2018/12/01 Javascript
vue从一个页面跳转到另一个页面并携带参数的解决方法
2019/08/12 Javascript
javascript严格模式详解(含严格模式与非严格模式的区别)
2019/11/12 Javascript
小程序自定义圆形进度条
2020/11/17 Javascript
[01:19:54]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#1Alliance VS EHOME
2016/03/03 DOTA
[01:06:32]DOTA2上海特级锦标赛D组资格赛#1 EG VS VP第一局
2016/02/28 DOTA
[01:03:54]Liquid vs IG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
使用Python3 编写简单信用卡管理程序
2016/12/21 Python
基于Python中单例模式的几种实现方式及优化详解
2018/01/09 Python
找Python安装目录,设置环境路径以及在命令行运行python脚本实例
2020/03/09 Python
如何利用python正则表达式匹配版本信息
2020/12/09 Python
Snapfish英国:在线照片打印和个性化照片礼品
2017/01/13 全球购物
2014中学教师节广播稿
2014/09/10 职场文书
职工擅自离岗检讨书
2014/09/23 职场文书
学校元旦晚会开场白
2014/12/14 职场文书
遗嘱继承权公证书
2015/01/26 职场文书
体育活动总结
2015/02/04 职场文书
个人承诺书格式范文
2015/04/29 职场文书
Python爬虫实战之爬取携程评论
2021/06/02 Python
sql字段解析器的实现示例
2021/06/23 SQL Server