1

私は次のものを持っています....

<div class="validationbox">
    <h1>Errors</h1>
        <ul class="validationerrors">
            <li>Error 1</li>
            <li>Error 2</li>
            <li>Error 3</li>
        </ul>
</div>

エラーリスト項目は動的に生成されるため、何もない場合があります。リスト項目がない場合は、「validationbox」div を非表示にしたいと思います。

私が見なければならないのはjavascriptまたはjqueryだと思いますが、誰か例はありますか?

4

3 に答える 3

6

jQuery では、次のように簡単に実行できます。

$(".validationbox:not(:has(li))").hide();

純粋な JavaScript では、「.validationbox」要素を反復処理し、<li>内部のノードを検索する必要があります。

var div = document.getElementsByClassName("validationbox");
for (var i = 0, len = div.length; i < len; i++) {
    if (!div[i].getElementsByTagName("li").length) {
        div[i].style.display = "none";
    }
}
于 2013-04-12T10:05:55.737 に答える
2
$('.validationbox').toggle( $('.validationerrors li').length );

toggle()ブール値を引数として受け入れます。要素$('.validationerrors li').lengthがない場合は false と評価され、それ以外の場合は true と評価され、エラー リストが表示されます。<li>

于 2013-04-12T10:07:36.720 に答える
1

使用できません。

$('div .validationbox').not(':has(li)').hide();

それがあなたの助けになることを願っています

于 2013-04-12T10:12:36.627 に答える