1. getElementById() getElementsByTagName()  javascript原生的方法,这两个不会有兼容性问题。

2. getElementsByClassName()是HTML5的DOM API ,IE8及以下不支持(不支持HTML5的浏览器)。

对于现代浏览器,document.getElementsByClassName( 'wrap' )获取的是DOM中所有class为wrap的元素

在IE8及以下,可以模拟实现这种效果

function getElementsByClassName(oParent, tagName, className) {
  if(document.getElementsByClassName ){     //现代浏览器

    return oParent.getElementsByClassName(className );

  }else{     //IE8以下

    var aEls = oParent.getElementsByTagName(tagName);
    var arr = [];
    for (var i=0; i<aEls.length; i++) {
      var arrClassName = aEls[i].className.split( ' ' );
      for (var j=0; j<arrClassName.length; j++) {
        if ( arrClassName[j] == className ) {
          arr.push(aEls[i]);
          break;
        }
      }
    }
    return arr;

  }

}

例如:

<ul>

  <li class="box1 box2">1</li>

  <li class="box3 box5">1</li>

  <li class="box4">1</li>

  <li class="box1 box1">1</li>

</ul>

  getElementsByClassName(document, 'li', 'box1');


3. querySelector() querySelectorAll()也是HTML5的DOM API ,IE8以下不支持(不支持HTML5的浏览器)。

  querySlector() 接受一个css选择器作为参数,然后返回DOM中匹配的第一个元素。

  querySelectorAll()接受一个css选择器作为参数,然后返回DOM中匹配的元素的集合。

  document.querySlector('.wrap')获取的是DOM中第一个class为wrap的元素。

  document.querySlector('p')获取的是DOM中第一个p元素。

  document.querySelectorAll('.wrap')获取的是DOM中class为wrap的元素集合。

  document.querySelectorAll('p')获取的是DOM中p元素集合。

getElementById() getElementsByTagName() getElementsByClassName() querySlector() querySlectorAll()区别的更多相关文章

  1. JavaScript中querySelector()和getElementById()(getXXXByXX)的区别

    在日常开发中,使用JavaScript获取元素的时候,最常用的方法就是document.getElementById(getXXXByXX)方法.但是最近发现有很多地方使用的是querySelecto ...

  2. document.getElementById(), getElementsByname(),getElementsByClassName(),getElementsByTagName()方法表示什么以及其意义

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  3. JS中获取元素使用getElementByID()、getElementsByName()、getElementsByTagName()的用法和区别

    Web标准下可以通过getElementById(), getElementsByName(), and getElementsByTagName()访问Documnent中的任一个标签:   1 g ...

  4. autohotkey 自动登录输入用户名密码 getElementsByTagName/getElementsByClassName/getElementById

    针对button未设置id的.可以通过getElementsByTagName获取button的对象数组,再明确其在对象数组中的位置,如第4个button,通过[3]获取.再调用此对象的click() ...

  5. document.getElementById和document.querySelector的区别

    zepto中的$(".111")出错,jQuery中$(".111")不出错的原因: zepto用document.querySelector实现,jQuery ...

  6. getElementById和querySelector方法的区别

    "querySelector 属于 W3C 中的 Selectors API 规范 .而 getElementsBy 系列则属于 W3C 的 DOM 规范" 1.区别 getXXX ...

  7. document.getElementById(“id”)与$("#id")的区别

    document.getElementById("id")可以直接获取当前对象, jQuery利用$("#id")获取的是一个[object Object],需 ...

  8. getElementsByTagName("div")和$("div")区别

    作者:zccst <body> <div class="selected">1</div> <div class="select ...

  9. js中script的上下放置区别 , Dom的增删改创建

    回顾 javascript分为三部分: 1.ECMAScript5.0 es6(阮一峰) es7 es8 es6中有类的概念 声明变量 var let(es6中语法) 内置函数 Date Math.r ...

随机推荐

  1. is_null, empty, isset, unset对比

    is_null, empty, isset, unset 我们先来看看这4个函数的描述 isset 判断变量是否已存在(配置)unset 把变量删除(释放)掉empty 判断变量是否为空is_null ...

  2. XE1:使用SSMS创建Extended Events

    Extended Events 用于取代SQL trace,是SQL Server 追踪系统运行的神器,其创建过程十分简单. 一,创建Extended Events的Session step1,打开N ...

  3. EF执行出错~NotSupportedException

  4. 实践 Neutron 前的两个准备工作 - 每天5分钟玩转 OpenStack(78)

    上一节配置了 linux-bridge mechanism driver,本节再做两个准备工作: 1. 检视初始的网络状态.2. 了解 linux bridge 环境中的各种网络设备. 初始网络状态 ...

  5. android标题栏下面弹出提示框(一) TextView实现,带动画效果

    产品经理用的是ios手机,于是android就走上了模仿的道路.做这个东西也走了一些弯路,写一篇博客放在这里,以后自己也可用参考,也方便别人学习. 弯路: 1.刚开始本来用PopupWindow去实现 ...

  6. gsoap设置超时

    1.修改gsoap自动生成的代码才能进行超时设置(我这边访问web service的代码都是gsoap工具自动生成.根据wsdl接口) 2.找到生成的soapwwwsdlBindingProxy.cp ...

  7. 使用RequireJs和Bootstrap模态框实现表单提交

    下面我将使用requirejs结合模态框实现三五行代码部署表单提交操作. 传统开发思路如下:

  8. MySQL监控利器-Innotop

    Innotop是一款十分强大的MySQL监控工具,用perl所写,通过文本模式展示MysQL服务器和Innodb的运行状况. 安装innotop 下载地址:https://github.com/inn ...

  9. 使用 CSS3 实现超炫的 Loading(加载)动画效果

    SpinKit 是一套网页动画效果,包含8种基于 CSS3 实现的很炫的加载动画.借助 CSS3 Animation 的强大功能来创建平滑,易于定制的动画.SpinKit 的目标不是提供一个每个浏览器 ...

  10. php学习零散笔记—字符串分割、fetch函数和单双引号。

    1 字符串分割——split()函数和preg_split()函数 split — 用正则表达式将字符串分割到数组中——貌似PHP5.3以上已不赞成使用 array split ( string $p ...