为什么在IE7中javascript array.indexOf无效?这是一个样本
function loaderFn()
{
var arr=["0","1","2"];
var b = arr.indexOf("1")
alert("Index of 1 is "+b);
}
在第4行的IE7中(arr.indexOf(“1”))
对象不支持属性或方法'indexOf'错误抛出
为什么这个只在IE7中出现?使用javascript for IE7在数组中查找值的索引号的方法是什么?
答案 0 :(得分:10)
在document.ready
方法中添加此内容:
if(!Array.prototype.indexOf) {
Array.prototype.indexOf = function(obj, start) {
for (var i = (start || 0), j = this.length; i < j; i++) {
if (this[i] === obj) { return i; }
}
return -1;
}
}
这是必需的,因为IE在IE8中不包含此方法。上面的函数检查它是否存在,如果没有,它会用它扩展Array原型。