IE8下不识别indexOf的问题

Posted Green.Leaf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IE8下不识别indexOf的问题相关的知识,希望对你有一定的参考价值。

1、为Array原型添加indexOf方法(如果学过面向对象,相当于给Array类添加实例方法),方法体如下:

//添加数组IndexOf方法
if (!Array.prototype.indexOf){
  Array.prototype.indexOf = function(elt /*, from*/){
    var len = this.length >>> 0;

    var 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;
  };
}

 

2、使用jQuery的inArray方法,注:jQuery版本2.0以上不再支持IE8

var arr = [ 1, "2", false, "aaa" ];
jQuery.inArray("aaa", arr);  
jQuery.inArray(false, arr);  
jQuery.inArray("2", arr);  
jQuery.inArray(1, arr, 2); 

不存在就为-1;

以上是关于IE8下不识别indexOf的问题的主要内容,如果未能解决你的问题,请参考以下文章

IE8不支持数组的indexOf方法

a标签的背景图在ie8下不显示的问题

为啥 indexOf 在数组 IE8 上不起作用?

IE8中字符串的indexOf的替代函数是啥?

解决IE8下不兼容rgba()的解决办法

html IndexOf IE8修复