这有什么问题? 我试图隐藏所有空的李。
$(document).ready(function() {
$("#details li").each(function() {
if ($(this).length == 0) {
$(this).css({ display: "none" }); ;
}
});
});
标记:
<ul id="details">
<li>Lorem Ipsum</li>
<li>Lorem Ipsum</li>
<li>Lorem Ipsum</li>
<li>Lorem Ipsum</li>
<li></li>
<li></li>
<li>Lorem Ipsum</li>
<li>Lorem Ipsum</li>
<li>Lorem Ipsum</li>
</ul>
提前谢谢
答案 0 :(得分:6)
我认为你想要的是.text()
长度,如下所示:
$(function() {
$("#details li").each(function() {
if ($(this).text().length == 0) {
$(this).css({ display: "none" }); ;
}
});
});
或者更短一些:
$("#details li").filter(function() {
return $(this).text().length == 0;
}).hide();
或者稍微不同的支票适用于您的目的,由@ Rafael提供:
$("#details li:empty").hide();
答案 1 :(得分:4)
尝试使用:
if ($(this).is(':empty')) {}
此外,您应该能够将上述代码重写为:
$("#details li:empty").each(function() {
$(this).css({ display: "none" });
});
甚至:
$("#details li:empty").hide();
答案 2 :(得分:0)
表达式$(this).length
不可能为零。