jquery text(),将<br>解释为新行

jac*_*des 15 jquery

像这样获取DOM的元素

$('#id').content().text();
Run Code Online (Sandbox Code Playgroud)

问题出现了

如果它得到这个:

<p>Hello</p>
<p><br></p>
<p>World</p>
Run Code Online (Sandbox Code Playgroud)

自然在Html中看起来像:

Hello 

World
Run Code Online (Sandbox Code Playgroud)

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

如何解释<br>为新线?< - >如何准确地获取HTML中我看到的文本?

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

jfr*_*d00 22

.text()是没有格式化的纯文本.它是字面上的文本节点,而没有任何其他HTML代码(包括由下式表示的新线的串联<br><p>代码,而不是通过新行).

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

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

var item = document.getElementById("id");
var text = item.innerText || item.textContent;
Run Code Online (Sandbox Code Playgroud)

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

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

Google搜索"HTML to text conversion"提供了许多调查选项.