これはCSSだけでは不可能だと思いますが、Javascriptでは間違いなく可能です。クラスparent
を持つすべてのdivを見つける - - クラスchild
と子のdivを持つすべてのそれらを見つける -
にあなたが持っている
そのような子が存在しない場合は、純粋で、今style.display = none
を設定javascriptこれはちょっと複雑かもしれません。あなたthis questionからgetElementsByClassName
を使用して、上記のロジック適用することができます。jQueryで
//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";
}
}
を、これは多くの簡単です:
$(".parent").each(function()
{
if($(this).children(".child").length == 0)
{
$(this).hide();
}
});
ライブ例:http://jsfiddle.net/nivas/JWa9r/
いいえ、子divも非表示になります。なぜあなたはこれをしたいのですか? – Drewid
私はあなただけのCSSでこれを行うことができるとは思わない。しかし、あなたはJavaScriptを使ってそれを行うことができます。 – Shef
'のようなものを探していますif(.parentと.parentは.childを持っています)this.parentを非表示にします(他の親ではありません)。できればcssでやってしまったり、.parentに子がある場合はクラス名を追加してください。 – FLY