我需要解析一个HTML字符串并删除所有只包含空子元素的元素。
示例:
<P ALIGN="left"><FONT FACE="Arial" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="1"><B></B></FONT></P>
不包含任何信息,必须替换为</br>
我写了一个这样的正则表达式:
<\w+\b[^>]*>(<\w+\b[^>]*>\s*</\w*\s*>)*</\w*\s*>
但问题是它只捕获了三个中的两个级别。在abobe示例中,未选择<p>
元素(最外面的元素)。
你能帮我解决这个正则表达式吗?
答案 0 :(得分:2)
使用jQuery并解析所有孩子。对于每个孩子,您必须检查.html()是否为空。如果是 - >使用.remove()。
删除当前元素(或者如果需要,删除父元素)为每个字符串做:
var appended = $('.yourparent').append('YOUR HTML STRING');
appended.children().each(function ()
{
if(this.html() === '')
{
this.parent().remove();
}
});
这将首先添加项目,如果有空子项,则删除。
答案 1 :(得分:2)