ここから本文です

配列にindexOfを使うとIEでエラーになり困っています。

wat********さん

2010/5/2010:35:53

配列にindexOfを使うとIEでエラーになり困っています。

以下コードを実行すると
FireFoxなどでは「1」と期待通り返されますが、
IEでは、「オブジェクトでサポートされていないプロバティまたはメソッドです。」
とエラーが表示されます。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-Script-Type" content="text/javascript">
<script type="text/javascript">
var item = new Object();
item.prd = ['あああ','いいい']
alert(item.prd.indexOf('いいい'))
</script>
</head>
<body>
</body>
</html>


なにか基本的な理解が間違っているのでしょうか。
どなたかご教示いただければ幸いです。

閲覧数:
8,498
回答数:
1

違反報告

PR

ベストアンサーに選ばれた回答

十里清裏さん

2010/5/2012:14:09

質問者:wataruisseiさん
IE の Array オブジェクトには indexOf は実装されていないので、実装してください。
ex.
if(!Array.indexOf){
Array.prototype.indexOf = function(target){
for(var i = 0; i < this.length; i++){
if(this[i] === target){
return i;
}
}
return -1;
}
}
参考:
http://ajax-shoiti.blogspot.com/2009/06/iearrayindexof.html

質問した人からのコメント

2010/5/20 13:17:11

降参 そっ、そうだったのですね。
理解いたしました。
ありがとうございました!

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる