jquery find()とfilter()の違い

6343 ワード

このメソッドは、jsを書き込み、現在のラベルの下にあるサブエレメントのサブエレメントのセットを検索するときに使用します.
1 $(".flyout-trigger").mouseover(function(){

2    var maxnum=$(this).find(".flyout-link").children().filter("dt").size();

3    $(this).children(".flyout-link").show();

4    $(this).children(".flyout-link").animate({

5        height:maxnum*26+'px'

6    });

7  });

 
find()とfilter()の使い方について検索しました
関数の違いは、ドキュメントに次のように書かれています.
find(expr):指定した式に一致するすべての要素を検索します.この関数は処理中の要素の子孫要素を見つける良い方法です.
filter(expr):指定した式に一致する要素のセットをフィルタします.この方法はマッチングの範囲を縮小するために用いられる.複数の式をカンマで区切る
 1 <html>

 2 <head>

 3 <script src="http://code.jquery.com/jquery-latest.js"></script>

 4 <script type="text/javascript">

 5     $(function(){

 6        alert($("p").find(".selected").html()); // find html

 7        alert($("p").filter(".selected").html()); // filter html

 8     });

 9 </script>

10 </head>

11 <body>

12 <p>html</p>

13 <p><span class="selected">find html</span></p>

14 <p class="selected">filter html</p>

15 </body>

16 </html>

違いがわかるかもしれませんが、find()はp要素内でclassがselectedの要素を探します.
フィルタ()は、pをフィルタするclassがselectedの要素です.
1つはそのサブセット操作であり、1つは自身の集合要素をフィルタリングする.