解决 IE 不支持 document.getElementsByClassName()

<!DOCTYPE html>
<html>
   <head>
      <meta charset="UTF-8">
      <title></title>
      <style type="text/css">
         div {
            width: 400px;
            height: 50px;
            margin: 10px 0;
         }
         .c {
            border: 1px solid red;
         }
         .c1 { border: 1px solid green; }
         .c2 { border: 1px solid blue; }
      </style>
      <script type="text/javascript">
         //className是类名.results是返回的数组
         var getClass=function(Class,results){
            results =results || [];
            var tempArr,i;
            //1.首先判断系统所提供的方法是否可以实现该功能
            if(document.getElementsByClassName){
               results.push.apply(results,document.getElementsByClassName(Class));
            }else{
               //2.自定义实现,
               //思路:首先获取所有元素,然后在元素中搜索符合要求的,再加入到数组中
               tempArr = document.getElementsByTagName('*');
               //(1)for循环,判断是否符合要求
               for(var i=0; i < tempArr.length; i++){
                  //注意,className属性需要验证非空
                  var list = tempArr[i].className.split(' ');
                  for (var j=0;j<list.length;j++){
                     if(list[j]===Class){
                        results.push(tempArr[i]);
                        break;
                     }
                  }
               }
            }
            return results;
         };
      </script>
   </head>
   <body>
      <div class="c1 c2"></div>
      <div class="c2"></div>
      <div class="c"></div>
      <div class="c1"></div>
   </body>
   <script>
      //实验
      var list =getClass('c1');
      for(var k in list){
         list[k].style.backgroundColor='pink';
      }
   </script>
</html>
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值