JS 选择器querySelector系列和getElementById的区别

1、两者的W3C标准不同
   querySelector系列属于W3C中的Selectors API(JS)规范
   getElementsBy系列则属于 W3C的DOM 规范。
2、两者浏览器的兼容不同
   getElementsBy系列基本能被所有浏览器支持。
   querySelector系列则通常只有在考虑兼容性的时候才被提起(尽管两者功能近似)
//IE7不支持
 var box = document.querySelectorAll('.p2');
 console.log(box);
/* var p1 = document.getElementById('p1');
 //IE8及其以下不支持getElementsByClassName
 var ps = document.getElementsByClassName('p');
 console.log(p1);*/
3、接受参数不同
   querySelector系列接收的参数是一个css选择器名。
   getElementsBy系列接收的参数只能是单一的className、tagName 和 name。
4、返回值不同
   (1)querySelector系列返回的是静态节点列表
     例子:
      var lis = document.querySelectorAll('li');
      console.log(lis);
      var ul = document.querySelector('ul');
      for(var i = 0;i<lis.length;i++){
          //新建一个li  一共会新建四个li
          var li = document.createElement('li');
          li.innerHTML='我是新建的li'+i;
          ul.appendChild(li);
      }
   (2)getElementsBy系列返回的是动态节点列表  回忆 childNodes
     例子:
      var lis = document.getElementsByTagName('li');
      console.log(lis);// 5 6 7
      var ul = document.querySelector('ul');
      for(var i = 0;i<lis.length;i++){
      console.log('来了 老弟');
      //新建一个li
      var li = document.createElement('li');
      li.innerHTML='我是新建的li'+i;
      ul.appendChild(li);
      }
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值