有没有办法按它们包含的元素选择元素?

时间:2011-05-09 18:27:44

标签: css css-selectors

我有几个div,如果它们包含一个元素,我想选择它们,例如:

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

我想选择带有链接的div,但不选择没有链接的{{1}}。这可能没有javascript吗?

另外,我想要的原因是子reddit样式表,因此我无法调整实际的HTML,只能调整CSS。

4 个答案:

答案 0 :(得分:3)

您正在尝试根据后代将样式应用于祖先。这在CSS中是不可能的。

最接近的是直接子选择器。但是这会将样式应用于a中的div,而不是相反。

div > a

详细了解CSS Selectors。我建议寻找另一种方法来选择这些元素或将样式应用于上面的a

答案 1 :(得分:1)

您可以使用:nth-​​child(N)选择器基于父元素内div元素的位置,无论可能是什么。所以在上面的例子中,在其中包含a元素的div元素是第一个子元素,而没有a元素的另一个div元素是第二个子元素。从代码中不清楚,如果这些div元素是任何其他元素的子元素,或者它们是body元素的子元素。如果他们是身体元素的孩子,你可以做

div:nth-child(1)

这将选择第一个div

div:nth-child(2)

这将选择第二个div。

当然,你必须自己想出哪个n-child有任何其他元素嵌套在其中,而不是使用该位置为“N”的值。如果div元素里面没有任何内容,你可以使用

div:empty

答案 2 :(得分:-1)

$('div > a').parent().whateveryouneedtodo()怎么样?

答案 3 :(得分:-2)

首先你必须将链接命名为div'class'和'id',如下所示:css将如下所示:

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

希望这是一个很好的答案