JavaScript

IEでのindexof使用する際の注意

2012年12月4日

配列内の文字列検索としてindexofを使う方法が結構簡単です。 しかし、IE8以前ではindexof使えないみたいですね…… 自分IE9で確認作業していたのですが、XPユーザーからjavascriptエラーが出るよと言われ…調べてみたらわかりました。 対策はこちらのを参考にしました。 とりあえずIEの場合は上のほうに以下の関数を定義すればOK [javascript] if(!Array.prototype.indexOf){ Array.prototype.indexOf = function(target,index){ //indexが数値かどうかの判断 if(isNaN(index)){ index = 0; } for(var i = index; i < target.length; i++){ if(this[i] === target){  return i; } } return -1; } } [/javascript]

これでindexofで検索することができますし、さらにindexに数値を入れることで配列内のindex番目から検索することができ、配列内の同じ文言のカウントを取ることもできます。 この関数を使わないで使用するにはIE9からなのでまだまだこの対策は必要でしょうね……

-JavaScript
-, ,