這是jQuery裡常用的2個方法。
他們2者功能是完全不同的,而初學者往往會被誤導。
現在有一個頁面,裡面HTML代碼為;
<p >
<p class="rain">測試1</p>
</p>
<p class="rain">
<p>測試2</p>
</p>
①如果我們使用find()方法:
var result = $("p").find(".rain");
alert(result.html() ) ;
結果:測試1
②如果使用filter()方法:
var result = $("p").filter(".rain");
alert(result .html() );
結果:<p>測試2</p>
find()會在p元素內尋找class為rain 的元素,是對它的子集操作
filter()則是篩選p的class為rain的元素,是對它自身集合元素篩選
另外find()其實還可以用選擇器表示:
var $select = $("p .rain");
明白他們的區別瞭嗎?
摘自 徐越的專欄