我有几个div
,如果它们包含一个元素,我想选择它们,例如:
<div><a href="http://example.com">link</a></div>
<div>No link</div>
我想选择带有链接的div
,但不选择没有链接的{{1}}。这可能没有javascript吗?
另外,我想要的原因是子reddit样式表,因此我无法调整实际的HTML,只能调整CSS。
答案 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;}
希望这是一个很好的答案