介绍:

  javascript中常见的3种获取元素的方法,分别是通过元素ID、通过标签名字和通过类名字来获取

操作如下:

1、getElementById

  DOM提供了一个名为getElementById的方法,这个方法将返回一个与之对应id属性的节点对象。使用的时候请注意区分大小写。

它是document对象特有的函数,只能通过其来调用该方法。其使用的方法如下:

document.getElementById('demo') //demo是元素对应的ID

该方法兼容主流浏览器,甚至包括IE6+,可以大胆使用。

2、getElementsByTagName

该方法返回一个对象数组(准确的说是HTMLCollection集合,它不是真正意义上的数组),每个对象分别对应着文档里有着给定标签的一个元素。类似于getElementById,同样,该方法只提供一个参数,它的参数是指定标签的名字,示例代码如下:

document.getElementsByTagname('li')  //li是标签的名字

需要注意的是,该方法除了能被document对象调用之外,还可以被普通的元素调用。示例如下:

var demo = document.getElementById('demo');
var lis = demo.getElementsByTagname('li');

同样,该方法兼容主流浏览器,甚至包括IE6+,可以大胆使用。

3、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差不多,如果有兴趣自己可以实现一套选择器。不过我觉得有上面的三个方法再结合事件冒泡,已经够用了,毕竟 这三种性能上算是优秀的。

Original linker:http://www.jb51.net/article/61737.htm

最新文章

  1. HTTP 错误 500.21 - Internal Server Error 解决方案
  2. GSM07.10协议中串口复用的注意事项
  3. Spring整合Ehcache管理缓存
  4. python环境搭建-pycharm2016软件注册码
  5. CloudStack 使用生态统计
  6. VS2010每次编译都重新编译整个工程的解决方案
  7. PHP PSR-3 日志接口规范 (中文版)
  8. 饭卡------HDOJ杭电2546(还是01背包!!!!!!)
  9. linux学习心得之vim/Cvim篇
  10. VS2010下编译sqlite3
  11. 使用PHP二维码生成类库PHP QR Code生成二维码
  12. Sublime Text 安装插件
  13. 201421123042 《Java程序设计》第14周学习总结
  14. 第五节:SignalR大杂烩(与MVC融合、全局的几个配置、跨域的应用、C/S程序充当Client和Server)
  15. Mysql数据约束 整理
  16. 毕业设计 之 三 mooodle及bigbluebutton使用笔记(未完成)
  17. IntelliJ IDEA 2018破解方法
  18. linux 安装redis4.0
  19. Array相关的属性和方法
  20. 并发编程(五)LockSupport

热门文章

  1. nginx源码编译安装
  2. php 的curl 模拟登陆
  3. Powershell获取WMI设备清单
  4. python twisted启动定时服务
  5. Yii源码阅读笔记(十九)
  6. QQ群笔记
  7. memcached学习笔记4--memcache扩展操作memcached
  8. mysqli常用命令
  9. __LINE__ check_arr_empty($arr)
  10. hiho42 : 骨牌覆盖问题&#183;二