jquery text(),解释为新行

时间:2012-08-10 16:45:44

标签: jquery

像这样获取DOM的元素

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

出现问题

如果它得到了:

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

自然在Html中看起来像:

Hello 

World

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

如何将<br>解释为新行? &LT; - &GT;如何准确地获取HTML中的文字?

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

1 个答案:

答案 0 :(得分:21)

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

.html()是容器标记的确切HTML。

如果您使用此功能,它会通过新行为您提供文本的近似值:

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

由于浏览器兼容性问题,它正在查看.textContent.innerText

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

Google搜索“HTML to text conversion”提供了很多可供调查的选项。