2011-04-01 182 views
3

可能重複:
Is there a CSS parent selector?CSS3選擇器:選擇特定節點的父節點?

嗨!

我想選擇一個特定節點(具有特定的className)的父節點來應用一些CSS樣式。

據我所知,只存在子元素,後代,繼節點等CSS3選擇器操作數...所以只有在DOM文件中的一些「向前」的選擇是可能的。當選擇器應用於DOM文檔中的某個部分時,選擇器描述的元素始終是選中的最後一個元素。我錯了嗎?但願如此!

如何在以下示例中選擇第一個<div>元素?假設可能存在很多其他<div> s,其中包含<p> s,我只想選擇包含p.foo但不包含p.bar<div>。請注意,我想選擇<div>而不是<p>

<div> 
    <h1>Test</h1> 
    <p class="foo">Some text</p> 
</div> 
<div> 
    <h1>Test 2</h1> 
    <p class="bar">Some other text</p> 
</div> 

在此先感謝!

+0

[有沒有CSS父選擇器?](http://stackoverflow.com/questions/1014861/is-there-a-css-parent-selector) – 2011-04-01 17:03:55

+0

@Matt對不起,沒有找到當我搜索它時...所以它可能會被關閉,我想。感謝您的鏈接。 – leemes 2011-04-01 17:08:10

+1

如果您搜索「css父選擇器」,這是最高結果,有31,000個視圖。 – 2011-04-01 17:09:40

回答

5

事實上,「父母選擇器」不存在。
你可以看到這裏選擇的列表: http://www.w3.org/TR/css3-selectors/#selectors

你可以給你的父節點的ID,然後選擇它的ID父。
否則我沒有看到任何解決方案從底部使用CSS完全訪問div。

+0

謝謝,但給它一個ID是不可能的,因爲我無法修改文檔(這是一個使用「時尚」的瀏覽器插件添加到網站的CSS)。 ..我想我需要一些腳本來完成它... – leemes 2011-04-01 17:10:56

+1

而不是使用JavaScript的parentNode,你可以嘗試訪問與「正常」自上而下的選擇器的股利。事實上,如果你不能,我會感到驚訝。相當所有的網站都使用CSS來引導網站的創建者使這個提示的大部分元素「可選」 – brillout 2011-04-01 18:54:14

+0

+1 ......我試圖這樣做。爲了清楚起見,我想創建一個基於CSS的Facebook廣告攔截器,因此選擇右側的Facebook贊助商框以使其「display:none;」沒有任何自己的類名或ID。所有其他廣告(例如,在影院視圖中)都可以輕鬆選擇。 – leemes 2011-04-01 19:04:07