我有这个html结构:
<div>
<div class="parent">
<div>
<div class="label">
<div class="xyz"></div>
</div>
</div>
</div>
<div class="parent">
<div>
<div class="label">
</div>
</div>
</div>
</div>
如果父级包含class="xyz"
的div,我想隐藏它
我尝试过:
.parent div.xyz {
display: none;
}
但似乎我的选择器不起作用。
答案 0 :(得分:0)
在CSS中,没有父元素选择器。在您的情况下,可以使用jquery实现解决方案。
$('.parent:has(.xyz)').addClass('hide');
.hide {
visibility: hidden;
}
答案 1 :(得分:0)
div.xyz .parent {
display: none;
}
<div>
<div class="xyz">
<div class="parent">
<div>
<div class="label">
<div class="xyz"></div>
</div>
</div>
</div>
</div>
<div class="parent">
<div>
<div class="label">
</div>
</div>
</div>
</div>
您不能选择祖先,只能选择后代,例如:
<div class="xyz">
<div class="parent">
<div class="label">
<div class="xyz"></div>
</div>
</div>
<div class="parent">
<div class="label">
</div>
</div>
</div>
div.xyz .parent {
display: none;
}
在这种情况下,您将同时隐藏两个.parent
类
See more about descending selector
要在另一个包装器中选择父项或元素,您将需要使用javascript
答案 2 :(得分:0)
您可以使用以下jquery隐藏父元素
jQuery('.parent').each(function(){
if (jQuery(this).find('div.xyz').length != 0) {
jQuery(this).closest('.parent').hide();
}
});
希望这会有所帮助。