JavaScriptの配列に、文字列や数値だけが入っているとき、そこにある値が入っているかを判定するには、
var hoge = [123,456,789];
var check = 123;
for(p in hoge){
if(hoge[p] ==check){
alert('入ってる!');
break;
}
}
と、書くけど、もっと簡単に、
var hoge = [123,456,789];
var check = 123;
if((' '+hoge.join(' ')+' ').indexOf(' '+check+' ') > 0) alert('入っている');
と書ける。
jQueryの中でHTMLエレメントに指定されているclass名の判定には同じようなロジックが実装されています。
コメント (2)
失礼!通りすがりのものです。
>if((' '+hoge.join(' ')+' ').indexOf(' '+check+' ') > 0) alert('入っている');
ですが、
if((' '+hoge.join(' ')+' ').indexOf(' '+check+' ') >= 0) alert('入っている');
では?と思った次第です。
間違ってたらお許しを(^^;
Posted by: DKO | 2008年11月22日 13:35
度々失礼・・・
上記のコメントをさせていただきましたが、
正しくは、こうではないでしょうか。
if((' '+hoge.join(' ')+' ').indexOf(' '+check+' ', 0) >= 0) alert('入っている!'+check);
Posted by: DKO | 2008年11月23日 10:57