indexOf在IE8中抛出错误但在所有其他浏览器中都有效

时间:2013-03-01 15:17:54

标签: javascript internet-explorer indexof

嘿,我有以下js代码:

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

它抛出错误: SCRIPT438:对象不支持属性或方法'indexOf'

如何修复,因为它适用于所有其他浏览器?

2 个答案:

答案 0 :(得分:3)

答案 1 :(得分:0)

您可以在IE8及以下

中扩展此功能,例如Fix for .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;
  };
}