首页 > 编程知识 正文

js中getelementsbytagname,对象不支持getelementsbyclassname

时间:2023-05-05 08:16:53 阅读:201468 作者:492

我们都知道在使用原生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库文件,用到时就调用下即可。
   

   


版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。