Select 所有 <p> 元素里面只包含一个 <br> 元素

Select all the <p> elements that contain only a <br> element inside

我有以下 HTML 代码,无法控制它:

<p>this is visible</p>

<p>&nbsp;</p>

<p></p>

<p>
<br>
</p>

我需要隐藏所有没有文本的 p 元素。 到目前为止,使用这个脚本我删除了除这个之外的所有内容:

<p>
</br>
</p>

这是我正在使用的脚本:

   $("p").filter( function() {

      var html = $(this).html();

      if(html == '' || html == '&nbsp;' || html == '<br>')
          return true;

   }).addClass('emptyP');

如果你想隐藏所有没有文字的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>&nbsp;</p>
<p></p>
<p><br/></p>