繁体   English   中英

删除空的段落标签

[英]Removing empty paragraph tags

我想找到最简单的方法来修剪空

文字开始前添加标签。 例如,我有以下文字。

 <p> </p><p> </p> <p> </p><p> </p> <p> </p> <p>This is an example<br></p><p> </p><p>continue </p> 

我希望输出为<p>This is an example<br></p><p> </p><p>continue </p>

我希望删除所有空的P标签。 两者之间可以有多个空格

标签。

我可以选择使用CSS或VB或c#。

提出您的意见,即您也接受C#,我建议使用一个简单的正则表达式来验证这一点:

var source = @"<p> </p><p> </p>
<p> </p><p>     </p>
<p>    </p>
<p>This is an example<br></p><p> </p><p>continue </p>";

string output = Regex.Replace(source, @"<p>\s*</p>", "").Trim();

用Telerik转换后的VB.net中的相同代码应如下所示:

Dim source = "<p> </p><p> </p>" & vbCr & vbLf & "<p> </p><p>     </p>" & vbCr & vbLf & "<p>    </p>" & vbCr & vbLf & "<p>This is an example<br></p><p> </p><p>continue </p>"

Dim output As String = Regex.Replace(source, "<p>\s*</p>", "").Trim()

说明:

<p> matches the characters <p> literally
\s* match any white space character [\r\n\t\f ] 0 to unlimited times
</p> matches the characters </p> literally

您已在CSS中标记了您的问题。 所以,我正在使用:empty伪类选择器在CSS中为您提供答案:

p:empty{
  display: none;
}

看看我可以使用:empty


根据您更新的问题:

你可以用低于这样的:

p:empty :not(p + p:empty){
   display: none;
}

我认为这个CSS技巧会起作用:

p:empty {
    display: none;
}

您可以查看以下网站以获取解决方案,我认为它将为您提供帮助: http : //www.dotnetperls.com/remove-html-tags

使用jQuery,而不是c#,vb.net或CSS

在文档准备好事件上写这个

var p = $("p"); 

    for (var i = 0; i < p.length; i++)
   { 
       if($.trim(p[i].innerHTML) == "")
        {
          p[i].remove();
         }
    }
  1. 查找所有P标签
  2. 遍历它们以查找空标签
  3. 删除它们

的jsfiddle

请尝试这个

   function removeEmptyPTags() {            
                var items = $('body').find('p');
                $.each(items, function (i, v) {
                    if ($(items[i]).html().trim() === "") {
                        $(items[i]).remove();
                    }
                });
            }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM