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如果没有<li>元素,将评估为 false,否则为 true,这将显示错误列表。

于 2013-04-12T10:07:36.720 回答
1

你可以用不。

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

希望对你有帮助

于 2013-04-12T10:12:36.627 回答