[转载]在IE使用javascript 数组的indexOf - x123jing的专栏 - 博客频道 - CSDN.NET

[转载]在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(“,”);

 

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

登录

注册