目前可以这么解决,判断浏览器支不支持这个方法,如果支持就不管;如果不支持,就在document对象里加入getElementsByClassName这个方法,按兴趣的朋友可以了解下
if (navigator.appName == 'Microsoft Internet Explorer') { document.getElementsByClassName = function() { var tTagName = "*"; if (arguments.length > 1) { tTagName = arguments[1]; } if (arguments.length > 2) { var pObj = arguments[2] } else { var pObj = document; } var objArr = pObj.getElementsByTagName(tTagName); var tRObj = new Array(); for ( var i = 0; i < objArr.length; i++) { if (objArr[i].className == arguments[0]) { tRObj.push(objArr[i]); } } return tRObj; } }
function getElementsByClassName(className,tagName) { tagName=tagName||"*"; //参数tagName可以不写。 if (document.getElementsByClassName) { //如果浏览器支持getElementsByClassName就直接用 return getElementsByClassName(className); }else { var tag= document.getElementsByTagName(tagName); //获取指定元素 var tagAll = []; //用于存储符合条件的元素 for (var i = 0; i < tag.length; i++) { //遍历获得的元素 for(var j=0,n=tag[i].className.split(' ');j<n.length;j++){ //遍历此元素中所有class的值,如果包含指定的类名,就赋值给tagnameAll if(n[j]==className){ tagAll.push(tag[i]); break; } } } return tagAll; } }