如何使用jquery去除段落标记之间的空白区域

时间:2017-03-17 22:18:36

标签: jquery

如何删除</p></p>之间的空格,以便在点击标题时,.html();的内容将设置为.question div ? .html()的内容是动态生成的,并且通过段落标记之间的空格来生成。我应该能够运行正则表达式或类似的东西,但使用$.trim()仅适用于字符串的开头和结尾,而不是之间。

<a id="title">click me</a>
<div class="question"></div>

$('#title').click(function() {
  $('.question, .mobile-answer').html('<p class="header">Title</p><p>Content of question</p>

    < p > more content goes here < /p>

    < p > even more content goes here < /p>
    ')
  });

JSFIDDLE:LINK

4 个答案:

答案 0 :(得分:1)

如果您的字符串是

str = '<p class="header">Title</p><p>Content of question</p>

    < p > more content goes here < /p>

    < p > even more content goes here < /p>
    '

执行:

str.replace(/\s*(>|<)\s*/g,"$1")

结果:

"<p class="header">Title</p><p>Content of question</p><p>more content goes here</p><p>even more content goes here</p>"

https://regex101.com/r/DuEA31/2

答案 1 :(得分:0)

您可以使用正则表达式删除</p><p>之间的空格。假设动态内容位于名为content的变量中:

content = content.replace(/< *\/p *>\s+< *p *>/g, '<p></p>');

答案 2 :(得分:0)

你试过吗?

// remove whitespace after tags
str.replace(/\>[\t ]+$/g, ">");

来源:https://jaketrent.com/post/remove-whitespace-html-javascript/

答案 3 :(得分:0)

由于SEO的问题,我必须简单地将内容设置为div中的切换状态,并根据单击的链接隐藏/显示。这也使得数据不需要使用正则表达式进行过滤。