我有可能是这样的文本段落:
<p>
<span style='font-family:arial'>
Some text
</span>
</p>
或者
<p>
<strong>
Some more text
<strong>
</p>
或者
<p>
<strong>
<em>
Yet more text
</em>
</strong>
</p>
无论有多少嵌套标签,我都可以只获取文本,只需使用$('p').text(). 问题是什么时候<br>在中间弹出。在这种情况下,文本所在的任何标签都会被分解。例如,这个:
<p>
<strong>
Some more text
</strong>
</p>
会变成这样:
<p>
<strong>
Some
</strong>
<br />
<strong>
more text
</strong>
</p>
所以你看,标签中现在有 2 个文本节点<strong>,而不仅仅是一个。我想要做的是只获取带有原始父标签的文本,将其<br>视为另一个文本节点,但没有<br>-induced-tag-split-up 入侵。例如,给定上面的 2 节点 HTML,我只想要一个返回以下内容的函数:
<p>
<strong>
Some
<br />
more text
</strong>
</p>
这对于一些给定的格式来说很好,但是我可能需要保留不同类型的 HTML 嵌套(例如<p><strong><em>or <p><em><strong>or<p><strong><span>等等。
编辑
$('p').html()我想最简单的方法是获取并简单地砍掉周围的所有标签,而不是迷失在循环中<br>?左边<br>是结束标签,右边是开始标签。那么会有正则表达式解决方案吗?