JS代码在IE8中不起作用?

时间:2015-01-08 16:01:43

标签: javascript html internet-explorer-8

我有一个调用此js文件的html。 html和js在ie9及以上版本中运行良好,但由于某种原因,ie8不能使用这个js文件,是否有可能html文件没有加载文件或代码有问题?

function countTotalByClassName(klass){
 total=0;
 var arr = document.getElementsByClassName(klass);
 for (var index = 0; index < arr.length; index++) {
     // console.log(arr[index].checked);
     if(arr[index].checked){
     total=total+1;
     }
 };
 return total;
} // END countTotalByClassName()

/* getGreatestChoice()
 *
* Given an array of hashes, return the one with the highest number.
*
*/
function getGreatestChoice(arr){
res="";
size=0;
for (var i = 0; i < arr.length; i++) {
if (arr[i].count > size){
    res=arr[i].name;
}
}
return res;
} // END getGreatestChoice()

 function results(){
 item1 = {}; 
 item2 = {}; 
 item3 = {}; 
 item4 = {}; 

 arr=[];    // array of items

 // BEGIN BUILD HASH ARRAY
 item1["name"]="<h1>Lorem1</h1><p>random text</p><img src='img/Hi.png' class='img-responsive'>";
 item1["count"]=countTotalByClassName("A");
 arr.push(item1);
 item2["name"]="<h1>Lorem2</h1><p>random text</p><img src='img/Hi.png' class='img-responsive'>";
 item2["count"]=countTotalByClassName("B");
 arr.push(item2);
 item3["name"] = "<h1>Lorem3</h1><p>random text</p><img src='img/Hi.png' class='img-responsive'>";
 item3["count"] = countTotalByClassName("C");
 arr.push(item3);
 item4["name"] = "<h1>Lorem4</h1><p>random text</p><img src='img/Hi.png' class='img-responsive'>";
 item4["count"] = countTotalByClassName("D");
 arr.push(item4);
 // END BUILD HASH ARRAY

 res=getGreatestChoice(arr);

 document.getElementById('result').innerHTML = res;
 document.getElementById('result').style.width = '100%';
 document.getElementById('result').style.backgroundColor = '#F0F0F0';
 document.getElementById("result").style.padding="5px 10px 10px 10px"; 

} // END results()

1 个答案:

答案 0 :(得分:2)

似乎方法getElementsByClassName is not supported in IE8。尝试使用querySelectorAll,这在IE8中运行良好。

而不是:

var arr = document.getElementsByClassName(klass);

使用:

var arr = document.querySelectorAll('.' + klass);

如果您还需要IE6支持,则可以使用this polyfill