我有可能是这样的文本段落:
<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>
是结束标签,右边是开始标签。那么会有正则表达式解决方案吗?