filterとhasClassのメソッドのサンプルの二つを用意しました。
実行している内容はほぼ同じです。
まずはfilterメソッドを使った場合
上記のサンプルは以下のJSの実行結果です。
$("#demo_area div").filter(".hoge") .css("background", "#FCC");
HTMLはこちら
<div id="demo_area"> <div></div> <div class="hoge"></div> <div class="hoge"></div> <div class="hoge"></div> <div></div> </div>
次はhasClassメソッドの場合
上記のサンプルは以下のJSで実行してます。
$('#demo_area2 div').each(function() { if($(this).hasClass("hoge")){ $(this).css("background", "#FCC"); } });
HTMLはこちら
<div id="demo_area2"> <div></div> <div class="hoge"></div> <div class="hoge"></div> <div class="hoge"></div> <div></div> </div>
filterメソッドを知っていたら、わざわざeachを使って、hasClassを使うのは無駄な感じがしますね。
しかし、最後に以下のサンプルのご確認を。
こちらのJSはこちら
$('#demo_area3 div.hoge').css("background", "#FCC");
HTMLはこちら
<div id="demo_area3"> <div></div> <div class="hoge"></div> <div class="hoge"></div> <div class="hoge"></div> <div></div> </div>
このサンプルには、filterもhasClassも使っていません。
どのような場面で使うか、で手法を選ぶのが良さそうです。