【发布时间】:2018-10-18 13:08:19
【问题描述】:
我有以下 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');
【问题讨论】:
-
好吧,
</br>会被浏览器忽略,我敢打赌,因为它在 HTML 中毫无意义。您是否记录了脚本在元素中发现的内容? -
你可以尝试 $("p>br") 并且对于这些元素中的每一个你都可以调用 parent 来获取 p 元素
-
I need to hide all the p elements with no text inside你能用.text() 吗?它将大大简化您的逻辑,因为它不会返回 html 实体 -
@Pointy:实际上,尽管是语法错误,</br> is functionally equivalent to <br> in all browsers。一个错字,偶然,有效。
-
@BoltClock 真的吗? 关闭标签?我知道
<br/>有效,但将</br>解释为<br>似乎对任何人都没有任何好处。但是我不应该感到惊讶;我个人的理论是,这些行为中有很大一部分是由古老的 IE 版本引入的黑客行为,以使 1999 年的新手 Web 开发人员认为 IE 比 Netscape 运行得更好:)
标签: javascript jquery jquery-selectors