jQueryでのfilter()とfind()の違い

1088 ワード

1、filterメソッドはマッチング要素をフィルタし、findメソッドはマッチング要素の子孫要素をフィルタします.
eg:
<div class="css">
     <p class="rain">  1</p>
</div>
<div class="rain">
     <p>  2</p>
</div>
var $find = $("div").find(".rain");
alert( $find.html() ) ;
出力:テスト2
var $filter = $("div").filter(".rain"); alert( $filter.html() );
出力:

テスト2


2、end()方法:
主にjQueryのチェーン属性(コマンドチェーン)を利用する場合、jQueryの方が役に立ちます.コマンドチェーンを使用しない場合は、通常、変数名で前のオブジェクトを呼び出すので、スタックを操作する必要はありません.ただしend()により、すべてのメソッド呼び出しを直列に接続できます.
$('ul.first').find('.foo').css('background-color', 'red')
  .end().find('.bar').css('background-color', 'green');

このコマンドチェーンは、最初のリストのクラス名fooというアイテムを取得し、背景を赤に設定します.end()はオブジェクトをfind()を呼び出す前の状態に復元するので、2番目のfind()は
    内の'を検索する.bar'は、リストの
  • ではなく、一致する要素の背景を緑に設定します.最後の結果、第1のリストの項目1と項目3には色付きの背景が設定され、第2のリストの項目には何の変化もない.