我有一个调用此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()
答案 0 :(得分:2)
似乎方法getElementsByClassName
is not supported in IE8。尝试使用querySelectorAll
,这在IE8中运行良好。
而不是:
var arr = document.getElementsByClassName(klass);
使用:
var arr = document.querySelectorAll('.' + klass);
如果您还需要IE6支持,则可以使用this polyfill。