JavaScript|[JavaScript]兼容IE6/7的getElementByClassName

在使用原生javascript时,获取类选择符时,即使用getElementByClassName,它在Firefox和IE下是不能兼容。
Firefox下是可以用它获取的到元素而IE不行,一般框架都会实现该方法,达到在IE和Firefox下兼容的问题。



function getByClassName(className){ if(document.getElementByClassName){ return document.getElementByClassName(className) //FF下因为有此方法,所以可以直接获取到; } var nodes=document.getElementsByTagName("*"); //获取页面里所有元素,因为他会匹配全页面元素,所以性能上有缺陷,但是可以约束他的搜索范围; var arr=[]; //用来保存符合的className; for(var i=0; i



function hasClass(node,className){ var cNames=node.className.split(/\s+/); //根据空格来分割node里的元素; for(var i=0; i


【JavaScript|[JavaScript]兼容IE6/7的getElementByClassName】另从网上看到一种解决的办法:


由于IE4之后对 document.all 都有支持,所以可以简单的利用是否支持 document.all判断是否为IE。
如果不是IE,则用W3C DOM的document.getElementByTagName('*')取代all

function getElementsByClassName (className) { var all = document.all ? document.all : document.getElementsByTagName('*'); var elements = new Array(); for (var e = 0; e < all.length; e++) { if (all[e].className == className) { elements[elements.length] = all[e]; break; } } return elements; }



参考:http://www.cnblogs.com/oomusou/archive/2008/05/19/1202296.html

    推荐阅读