4

なぜIE7でjavascript array.indexOfが機能しないのですか? ここに1つのサンプルがあります

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を使用して配列内の値のインデックス番号を見つける方法は何ですか?

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 に答える