[转载]在IE使用javascript 数组的indexOf – x123jing的专栏 – 博客频道 – CSDN.NET.
最近在使用JavaScript数组时,为了获取数组中元素的索引,使用了indexOf.在firefox中调试ok,但是放到ie中,总是出错,无法执行。查查资料,发现原来在ie中不支持indexOf。如果要使用,需要插入下面的一段代码:
<span class = "kwd" > if </span><span class = "pun" >(!</span><span class = "typ" >Array</span><span class = "pun" >.</span><span class = "pln" >indexOf</span><span class = "pun" >)</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "typ" >Array</span><span class = "pun" >.</span><span class = "pln" >prototype</span><span class = "pun" >.</span><span class = "pln" >indexOf </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "kwd" > function </span><span class = "pun" >(</span><span class = "pln" >obj</span><span class = "pun" >)</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "kwd" > for </span><span class = "pun" >(</span><span class = "kwd" > var </span><span class = "pln" > i</span><span class = "pun" >=</span><span class = "lit" >0</span><span class = "pun" >;</span><span class = "pln" > i </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "kwd" > if </span><span class = "pun" >(</span><span class = "kwd" > this </span><span class = "pun" >[</span><span class = "pln" >i</span><span class = "pun" >]==</span><span class = "pln" >obj</span><span class = "pun" >)</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "kwd" > return </span><span class = "pln" > i</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "pun" >}</span><span class = "pln" > </span><span class = "pun" >}</span><span class = "pln" > </span><span class = "kwd" > return </span><span class = "pln" > </span><span class = "pun" >-</span><span class = "lit" >1</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "pun" >}</span><span class = "pln" > </span><span class = "pun" >}</span><span class = "pln" > </span><span class = "pun" >例如:</span><span class = "pln" > </span><span class = "kwd" > var </span><span class = "pln" > a</span><span class = "pun" >=</span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "typ" >Array</span><span class = "pun" >(</span><span class = "pln" > </span><span class = "str" > 'morning' </span><span class = "pun" >,</span><span class = "pln" > </span><span class = "str" > 'lunch' </span><span class = "pun" >,</span><span class = "pln" > </span><span class = "str" > 'afternoon' </span><span class = "pun" >,</span><span class = "pln" > </span><span class = "str" > 'night' </span><span class = "pun" >);</span><span class = "pln" > </span><span class = "kwd" > var </span><span class = "pln" > flag_inout </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "str" > 'lunch' </span><span class = "pln" > </span><span class = "com" > //for ie can't support indexof</span><span class="pln"> </span><span class = "kwd" > if </span><span class = "pun" >(!</span><span class = "typ" >Array</span><span class = "pun" >.</span><span class = "pln" >indexOf</span><span class = "pun" >){</span><span class = "pln" > </span><span class = "typ" >Array</span><span class = "pun" >.</span><span class = "pln" >prototype</span><span class = "pun" >.</span><span class = "pln" >indexOf </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "kwd" > function </span><span class = "pun" >(</span><span class = "pln" >obj</span><span class = "pun" >){</span><span class = "pln" > </span><span class = "kwd" > for </span><span class = "pun" >(</span><span class = "kwd" > var </span><span class = "pln" > i</span><span class = "pun" >=</span><span class = "lit" >0</span><span class = "pun" >;</span><span class = "pln" > i </span><span class = "kwd" > if </span><span class = "pun" >(</span><span class = "kwd" > this </span><span class = "pun" >[</span><span class = "pln" >i</span><span class = "pun" >]==</span><span class = "pln" >obj</span><span class = "pun" >){</span><span class = "pln" > </span><span class = "kwd" > return </span><span class = "pln" > i</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "pun" >}</span><span class = "pln" > </span><span class = "pun" >}</span><span class = "pln" > </span><span class = "kwd" > return </span><span class = "pln" > </span><span class = "pun" >-</span><span class = "lit" >1</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "pun" >}</span><span class = "pln" > </span><span class = "pun" >}</span><span class = "pln" > </span><span class = "kwd" > var </span><span class = "pln" > index_id </span><span class = "pun" >=</span><span class = "pln" > a</span><span class = "pun" >.</span><span class = "pln" >indexOf</span><span class = "pun" >(</span><span class = "pln" >flag_inout</span><span class = "pun" >);</span> |
备注:其实ie支持字符串的indexOf,可以将数组转换为字符串在用indexOf来判断就可以了
如下
var flag_inout=flag_inout.join(“,”);