2016-12-27 162 views
0

我有$(html).find('.model').parent().text(),它按預期工作。有沒有辦法在選擇器中表達「父母」關係? $(html).find('.model:parent').text()$(html).find('.model:parent()').text()都不起作用。jQuery - 在選擇器內選擇父項

我傳遞選擇器作爲參數,所以我希望選擇器直接導致元素。在這種情況下,父項沒有唯一的屬性,所以如果沒有先找到子項,我就無法選擇它。我遇到了docs [1]中的父選擇器,但無法弄清楚如何將它與類名選擇器結合使用。

[1] https://api.jquery.com/parent-selector/

+1

我們有一個[':parent'(https://api.jquery.com/parent-selector/)僞選擇器,但它的意義是遠遠不同於你正在尋找。最接近的就是[':has()'](https://api.jquery.com/has-selector/)僞選擇器。 – PeterKA

+0

正如你可以在鏈接頁面上閱讀的,'.model:parent'選擇* .model項目,它們本身就是某些*的父項。該頁面提供瞭如何獲得所需的父類選擇的建議,但只能使用方法調用。選擇器通常用於深入查看元素,AFAIK他們永遠不會回到層次結構。 –

+0

@PeterKA:謝謝 - ':has()'奏效了!我可以通過使用''h1:has(.model)'來選擇我想要的節點,因爲我知道它總是一個h1。如果您不介意將您的評論發佈爲答案,我會將其標記爲這樣。 @彼得乙:謝謝。我的問題已修復:has()。 – atlantis

回答

1

:parent是不是你要找的東西。也許:has()是您要找的最接近的僞選擇器。

用法:

$(html).find('*:has(.model)').text(); 

或者更具體地說:

$(html).find('h1:has(.model)').text();