我有以下代码,我试图隐藏并根据内部是否有任何错误显示div.validation-summary-errors
$('div.validation-summary-errors').each(function (index, element) {
if ( ????? ) {
$(element).parent().css({ "visibility": "visible" });
}
else {
$(element).parent().css({ "visibility": "hidden" });
}
});
标记如下所示。这是应该隐藏的情况,因为内部li
内部没有任何错误,display: none
<div class="validation-summary-errors">
<ul>
<li style="display:none"></li>
</ul>
</div>
答案 0 :(得分:1)
if($(this).find('li').text().length){
//there's an error
}else{
//there is no error
}
答案 1 :(得分:1)
尝试这样的事情。您需要迭代列表项而不是ul
本身,就像您在示例中一样。
$('div.validation-summary-errors li').each(function (index, element) {
var $el = $(element);
if ($el.text().length > 0) {
$el.parent().css({ "visibility": "visible" });
}
});
答案 2 :(得分:1)
var errorEls=$('.validation-summary-errors');
errorEls.filter(':has(li:empty').show().end().filter(':not(:has(li:empty))').hide()
如果您的内嵌css显示为display:none
,则css visibility
将无法显示该内容。
show()
和hide()
将更改display