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()怎么样?

相关问题