我有以下HTML代码,无法对其进行控制:
<p>this is visible</p>
<p> </p>
<p></p>
<p>
<br>
</p>
我需要隐藏所有p元素,且其中没有文本。 到目前为止,我使用此脚本删除了除此脚本之外的所有内容:
<p>
</br>
</p>
这是我正在使用的脚本:
$("p").filter( function() {
var html = $(this).html();
if(html == '' || html == ' ' || html == '<br>')
return true;
}).addClass('emptyP');
答案 0 :(得分:2)
如果您想隐藏所有p's
,但不显示任何文本,则可以按以下方式使用jQuery.text()。
$("p").filter( function() {
return !$(this).text().trim();
}).addClass('emptyP');
.emptyP {display:none}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>this is visible</p>
<p> </p>
<p></p>
<p><br/></p>