2011-05-09 93 views
1

我有幾個div秒,我要選擇他們是否包含一個元素,例如:有沒有辦法通過它們包含的元素來選擇元素?

<div><a href="http://example.com">link</a></div> 
<div>No link</div> 

我要選擇div與它的聯繫,但不是一個沒有。這可能沒有JavaScript?

另外,我想要這個的原因是子reddit樣式表,因此我無法調整實際的HTML,只有CSS。

回答

3

您正試圖將風格應用於基於後代的祖先。這在CSS中是不可能的。

最接近的是直接子選擇器。但是這會將a的樣式應用於div之內,而不是相反。

div > a 

閱讀更多關於CSS Selectors。我建議尋找另一種方法來選擇這些元素或將您的樣式應用到a上面。

+0

javascript有可能嗎? – starbeamrainbowlabs 2012-08-12 15:58:14

+1

是的。 JavaScript中的DOM具有更大的靈活性。一旦你有邏輯,編碼某種祖先選擇器應該是直截了當的。發佈一個新問題,一旦你開始。 – 2012-08-13 12:52:30

+0

好的,會做的。如果我有任何問題,我會發佈一個問題。 – starbeamrainbowlabs 2012-08-14 09:23:23

-2

首先你必須名稱的鏈接,並在div「類」和「身份證」像這樣:和CSS看起來就像這樣:

#divname,a.linkname {property:value;} 

希望這是一個很好的答案

+1

如果您已經閱讀我的文章,您會注意到我無法更改HTML。 – Andrea 2011-05-10 15:40:03

1

你可以使用:nth-​​child(N)選擇器,它基於父元素內div元素的位置,無論這可能是什麼。因此,在上面的例子中,其中包含a元素的div元素是第一個子元素,而沒有a元素的其他div元素是第二個子元素。從你的代碼中不清楚,如果這些div元素是任何其他元素的子元素還是他們身體元素的子元素。在情況下,他們是body元素的孩子,你可以做的

div:nth-child(1) 

這將選擇第一個div

div:nth-child(2) 

這將選擇第二個div。

Offcourse你必須爲自己想出哪些第n個孩子有嵌套在其中的任何其他元素,而不是使用該位置爲「N」的值。如果你div元素裏面沒有東西,你可以用

div:empty 
+0

其實,如果父母是身體或其他任何元素都沒關係。這將工作不管。 – Jawad 2011-05-09 19:00:21

+0

謝謝。不是我想要的,但很接近。 – Andrea 2011-05-10 15:44:39

-1

$('div > a').parent().whateveryouneedtodo()怎麼樣?

相關問題