我需要查找一个div
元素是否填充了来自我无法控制的系统中的大量表格的空白。而且我的意思是如果div中的表没有任何内容。
这是系统生成的精简标记:
<div class="shadowBox">
<table>
<tbody>
<tr>
<td>
<table>
<tbody>
<tr>
<td>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
在某些情况下,第二个(最内层)表中包含内容,在某些情况下则不包含内容。如果第二个表中没有内容,我想隐藏div。我可以通过结构并检查td的html来实现这一点:
$.trim($(".shadowBox table tbody tr td table tbody tr td").html())==""
有没有更简单的方法呢?
答案 0 :(得分:4)
您可以使用text()
$.trim($(".shadowBox").text())===""
其中:
获取匹配集合中每个元素的组合文本内容 元素,包括它们的后代。
如果是空的,请将其隐藏
if($.trim($(".shadowBox").text())===""){
$(".shadowBox").hide();
}
答案 1 :(得分:3)
此解决方案将获得所有具有不具有内容的shadowBox类的div。
这是代码:
$(".shadowBox").filter(function () {
return $.trim($(this).text()) === "";
}).hide();
测试here。
答案 2 :(得分:1)
$.trim($(".shadowBox table table").text())==""
应该这样做。 .text()将获取所选元素中的所有文本(无html)。
答案 3 :(得分:1)
答案 4 :(得分:0)
查看jquery :empty
(docs)选择器
$("shadowBox table tbody tr td table tbody tr td:empty")