[英]Using filter() to filter jquery based on parents
我在jquery文檔中看到我可以使用.parent()來根據父級過濾我匹配的元素。 但是在這個過程中,我得到的最終結果是父元素集,而不是原始元素集。 所以我看到我可以使用過濾器來實現我想要的。 但是我發現很少有關於如何根據父級使用過濾器進行過濾的文檔。
例如,我的HTML是:
<div id="social">
<a href="www.facebook.com">Facebook</a><br/>
<a href="www.twitter.com">Twitter</a><br/>
</div>
<div id="topsites">
<a href="www.facebook.com">Facebook</a><br/>
<a href="stackoverflow.com">Stack Overflow</a><br/>
</div>
我想得到一組元素,其中包含<a>
標簽,其中包含facebook
的href
屬性,但在social
div父母中。
我懷疑代碼將是這樣的:
$('a[href*="facebook"]').filter( ... ).click(function() {
});
但我完全不知道在過濾器上放什么。 "parent#social"
?
另一種說法是使用過濾功能。
$('a[href*="facebook"]').filter(function(index) {
return ...
}
.click(function() {
});
我也不知道要把什么代碼放在......上。 它是像this.parent.id == "social"
嗎? 如果可能的話,我更喜歡第一種形式,但如果解決方案只能通過使用第二種形式(過濾功能)來實現,那么它沒關系。 非常感謝你。
.parent()
不會過濾,它會遍歷。 它需要一個jQuery對象,它列出一個數組(大小為[0,n)),並為每個元素的父元素生成一個新的jQuery對象。
使用您正在尋找的列表獲取jQuery對象要簡單得多......
jQuery所基於的CSS選擇器(具有各種擴展)本質上是分層的。 這意味着選擇一些父母的特定孩子是非常微不足道的。 用於選擇所需元素的CSS選擇器是:
#social a[href*="facebook"]
如果你在jQuery構造函數中使用它,你會得到你的對象:
$('#social a[href*="facebook"]')
我想得到一組元素,其中包含
<a>
標簽,其中包含facebook的href
屬性,但在social
div父母中。
這里不需要filter
,
$('#social a[href*="facebook"]')
會做。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.