0

ねえ、私は次のjsコードを持っています:

for(var i = choicesOrder.indexOf(cat)+1; i<choicesOrder.length; i++)

そして、そのエラーをスローします:SCRIPT438:オブジェクトはプロパティまたはメソッド'indexOf'をサポートしていません

他のすべてのブラウザで機能するので、どうすれば修正できますか?

4

2 に答える 2

3

ここで実装できるプロトタイプバージョンを見つけることができます:https ://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/indexOf

于 2013-03-01T15:21:01.533 に答える
0

IE8以下の.indexOfの修正として、このような機能を拡張できます。

if (!Array.prototype.indexOf) {
  Array.prototype.indexOf = function(elt /*, from*/) {
    var len = this.length >>> 0,
        from = Number(arguments[1]) || 0;
    from = (from < 0) ? Math.ceil(from) : Math.floor(from);
    if (from < 0)
      from += len;

    for (; from < len; from++) {
      if (from in this && this[from] === elt)
        return from;
    }
    return -1;
  };
} 
于 2014-08-07T14:20:18.290 に答える