问答详情
源自:2-1 解决IE兼容性问题

这里不能用正则把className分割一下,然后用分割后的数组里面跟传进来的className进行比较么,我觉得更合理些

提问者:妈咪妈咪哄 2014-08-04 17:07

个回答

  • 慕虎7188715
    2016-01-22 22:31:31

    我没用正则分割,而是把所有的类名按空格分割成数组,再遍历数组中的每项判断是否等于需要的类名。代码如下:

    function className(name){
      //如果浏览器支持getElementsByClassName则会返回所有类名叫name的,如果不支持才会遍历每个类名
      if(document.getElementsByClassName){
         return document.getElementsByClassName(name);
      }
      var doms=document.getElementsByTagName("*");
      var arr=[];
      for(var i=0;i<doms.length;i++){
         var txt=doms[i].className.split(" ");
         for(j=0;j<txt.length;j++){
            if(txt[j]==name){
               arr.push(doms[i]);
            }
         }
      }
      return arr;
    }