天天看點

《jQuery Cookbook中文版》——1.6 查找目前選擇包裝器集中的後代元素

本節書摘來自異步社群《jquery cookbook中文版》一書中的第1章,第1.6節,作者:【美】jquery社群專家組著,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

1.6.1 問題

你選擇了一組(或者一個)dom元素,希望在目前選中元素的上下文中找到後代(子)元素。

1.6.2 解決方案

使用.find()方法,根據目前集合及其後代的上下文建立一個新的元素包裝器集。例如,假設你有一個包含多個段落的網頁,這些段落中封裝的是需要強調(以斜體顯示)的單詞。如果你隻想選擇

元素中包含的元素,可以使用如下代碼:

記住,也可以改寫上述代碼,将上下文引用作為jquery函數的第二個參數:

此外,值得一提的是,最後這兩個代碼示例隻是為了說明的目的而編寫的。使用css選擇器表達式選擇包含在

元素(祖先)中的斜體元素(後代)即使不實用,也是更符合邏輯的。

1.6.3 讨論

jquery .find()方法可以用于根據目前dom元素集及其子元素的上下文建立新的元素集。人們往往混淆filter()和.find()方法的用法。記住兩者差異的最簡手段是記住.find()将操作/選擇目前集合的子元素,而.filter()隻操作目前元素集。換句話說,如果你想将目前包裝器集當作上下文,進一步選擇集合中元素的子元素,進而改變目前的包裝器集,就應該使用.find()。如果你隻想過濾目前包裝集,獲得集合中目前dom元素的一個新子集,則使用.filter()。歸納起來就是:find()傳回子元素,而filter()隻過濾目前包裝集裡的元素。

繼續閱讀