javascript下用getElementByClassName获取css定义的类选择符(.class),兼容FF和IE

我们都知道在使用原生javascript时,获取类选择符时,即使用getElementByClassName,它在FF和IE下是不能兼容。

FF下是可以用它获取的到元素而IE不行,相当悲催的说~所以我们想使用它就得写兼容代码让它在FF和IE下都可以达到目

的。

function getByClassName(className){
  if(document.getElementByClassName){
        return document.getElementByClassName(className) //FF下因为有此方法,所以可以直接获取到;
   }
   var nodes=document.getElementsByTagName("*");//获取页面里所有元素,因为他会匹配全页面元素,所以性能上
有缺陷,但是可以约束他的搜索范围;
   var arr=[];//用来保存符合的className;
   for(var i=0;i<nodes.length;i++){
      if(hasClass(nodes[i],className)) arr.push(nodes[i]);
  }
   return arr;
  }
function hasClass(node,className){
  var cNames=node.className.split(/\s+/);//根据空格来分割node里的元素;
   for(var i=0;i<cNames.length;i++){
      if(cNames[i]==className) return true;
    }
    return false;
  }
这样就可以在FF和IE下达到兼容了。可以他这段开发成javascript库文件,用到时就调用下即可。
   

   


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值