簡體   English   中英

使用filter()根據父級過濾jquery

[英]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>標簽,其中包含facebookhref屬性,但在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM