17

像这样获取 DOM 的元素

$('#id').content().text();

问题出现

如果它得到这个:

<p>Hello</p>
<p><br></p>
<p>World</p>

自然地在 Html 中看起来像:

Hello 

World

但是这个 jquery.text()方法返回:HelloWorld

如何解释<br>为新行?<-> 如何获得与我在 HTML 中看到的完全一样的文本?

.html()给出了我不想要的所有 HTML 标签。如果可能的话,我只需要带有空格的纯文本。

4

1 回答 1

22

.text()是没有格式的纯文本。它实际上是文本节点的连接,没有任何其他 HTML 代码(包括由<br>or<p>标记表示的新行,而不是由换行符)。

.html()是容器标签的准确 HTML。

如果你使用它,它会给你一个新行的近似文本:

var item = document.getElementById("id");
var text = item.innerText || item.textContent;

由于浏览器兼容性问题.textContent,它正在考虑两者。.innerText

有关工作演示,请参阅http://jsfiddle.net/jfriend00/Xs5P3/ 。

Google 搜索“HTML 到文本的转换”提供了很多可供调查的选项。

于 2012-08-10T16:48:07.543 回答