使用JS / jQuery在跨度中查找和包装<br/> <br/>

时间:2018-11-13 15:36:55

标签: javascript jquery html

按照标题的要求,我正在寻找一种方法来定位文档中所有<br><br>的出现,以便可以将它们包裹在一个跨度中。

据我所知,它们并不以字符串形式存在,因此我不确定如何将它们作为目标。

最终目标是采取这样的做法:

Hello my name is Neil.<br><br>How are you?

并使其变成这样:

Hello my name is Neil.<span style="line-height:14px;"><br><br></span>How are you?

2 个答案:

答案 0 :(得分:2)

我不会讨论前提,尽管我很确定有更优雅的方式来做您实际想做的事。这应该可以解决问题:

document.body.outerHTML = document.body.outerHTML.replace(/<br><br>/gi, '<span style="line-height:14px;"><br><br></span>')
<div>
This is a test <br><br> and it's working
</div>

在charlietfl的注释之后添加的内容:请注意,此警告之一是,它将像这样替换掉所有事件侦听器,因为实际上是删除dom的所有元素并重建一个新的一。解决此问题的方法是在进行任何其他绑定之前进行此替换。另一个解决方法将是限制这种替换的范围:现在它发生在整个正文上,但是您可以更准确地定位段落或具有特定类的段落。

我还使用此编辑使正则表达式匹配不区分大小写,以便将<BR><BR>视为<br><br>或您将使用的任何驼峰大小写...

答案 1 :(得分:1)

您可以执行此操作,但是它也会包装单个<br>元素:

$("br").wrapAll('<span style="line-height:14px" />');

如果您仅设置线条高度或其他类似的样式,则可能只想使用样式:

br {
  line-height: 14px;
}

/* Hide second line-break */
br + br {
  display: none;
}