为什么IE7 javascript array.indexOf不起作用?

时间:2013-03-29 08:50:44

标签: javascript arrays internet-explorer-7 indexof

为什么在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在数组中查找值的索引号的方法是什么?

1 个答案:

答案 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原型。