在IE中“对象不支持indexOf属性或方法”
最近在使用javascript数组时,为了获取数组中元素的索引,使用了indexOf。在chrome、firefox等浏览器中运行是正常的,但是放到IE中,总是出错,无法执行。查查资料,发现原来在IE中不支持indexOf。
如果要使用,需要插入下面的一段代码定义一下indexOf方法:
if(!Array.indexOf) { Array.prototype.indexOf = function(obj) { for(var i=0; i<this.length; i++) { if(this[i]==obj) { return i; } } return -1; } }
兼容示例:
var arr=new Array('foo1', 'foo2', 'foo3'); var flag = 'foo2'; //以下是处理IE中indexOf不兼容的定义方法 if(!Array.indexOf){ Array.prototype.indexOf = function(obj){ for(var i=0; i<this.length; i++){ if(this[i]==obj){ return i; } } return -1; } } //调用 var index_id = arr.indexOf(flag); alert(index_id);
此程序将输出1,表示当前键值的索引,IE中调试通过。
本文固定链接:http://www.penglig.com/post-255.html
本文由Cfans_gpl原创或编辑,互联分享,尊重版权,转载请以链接形式标明本文地址。
本文由Cfans_gpl原创或编辑,互联分享,尊重版权,转载请以链接形式标明本文地址。