4

为什么在 IE7 javascript array.indexOf 中不起作用?这是一个示例

function loaderFn()
{
    var arr=["0","1","2"];
    var b = arr.indexOf("1")
    alert("Index of 1 is "+b);
}

在 IE7 第 4 行 (arr.indexOf("1"))

对象不支持属性或方法“indexOf”错误抛出

为什么只在 IE7 中出现这种情况?使用 IE7 的 javascript 在数组中查找索引值的方法是什么?

4

1 回答 1

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

于 2013-03-29T08:53:49.350 回答