为什么IE7 javascript数组.indexOf不工作

why IE7 javascript array.indexOf is not working?

本文关键字:工作 indexOf 数组 IE7 javascript 为什么      更新时间:2023-09-26

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

将此添加到您的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原型。