如果div没有类的子级,则css隐藏div
如果div没有具有特定类名的子div,是否可以使用css隐藏该div如果div没有类的子级,则css隐藏div,css,Css,如果div没有具有特定类名的子div,是否可以使用css隐藏该div <div class="parent"> This div must be hidden </div> <div class="parent"> This div must be visible <div class="child"> child div </div> </div> 这个div必须隐藏起来 此div必须可见 儿童部 如果C
<div class="parent">
This div must be hidden
</div>
<div class="parent">
This div must be visible
<div class="child">
child div
</div>
</div>
这个div必须隐藏起来
此div必须可见
儿童部
如果CSS不可能,可能是javascript或jQuery?我认为仅CSS是不可能的,但javascript绝对是可能的 你必须
-查找具有类
父类的所有div
-用class
child
-如果没有这样的子项,则设置
style.display=none
现在,使用纯javascript这可能有点复杂。您可以从中使用GetElementsByCassName
,然后应用上述逻辑:
//getElementsByClassName from @CMS's answer to the linked question
var parentDivs = getElementsByClassName(document, "parent");
for(var i=0; i<parentDivs.length; i++)
{
var children = getElementsByClassName(parentDivs[i], "child");
if(!children || children.length == 0)
{
parentDivs[i].style.display = "none";
}
}
实例:自CSS3以来,您可以使用:空选择器。这种方法得到了所有现代浏览器的广泛支持,并且比javascript的替代方法快得多。不,子div也将被隐藏。你为什么要这样做?我不认为你可以单独在CSS中这样做。但是,您可以使用JavaScript来实现这一点。查找类似“if(.parent AND.parent has.child)的内容隐藏这个.parent(而不是另一个父项),如果这对您来说更清楚的话。最好在css中完成,或者甚至添加一个类名,如果。父级有或没有子级,如果这能让你在任何地方?thnx。我做了更多的研究,也尝试用另一种方式(隐藏所有父项,然后只显示有子项的父项),但我必须得出结论,您不能使用css选择器来选择父项。您只能选择元素本身或被继承者。但是
:empty
失败,如果在内部。parent
是任何文本(包括空格或换行符)。@codename-这不是空选择器失败,因为包含偶数空格内容的元素不是空的。
$(".parent").each(function()
{
if($(this).children(".child").length == 0)
{
$(this).hide();
}
});