5

我正在开发某种在线 html 编辑器,但在使用 jQuery 获取文本区域的内容时遇到问题。

Textarea 元素是这样的:

<textarea id="myText"><b>&lt;p&gt;TEST&lt;/p&gt;</b></textarea>

所以它是转义和非转义文本的混合体。但是,浏览器显示这样的文本区域,这也是我不想要的:

<b><p>TEST</p></b>

我想按原样获取 textarea 的内部 html。如果我尝试.html(),它会转义所有标签,如果我尝试.val(),它会解码转义的标签。您可以在http://jsfiddle.net/hnBte/看到行为

如何使用 Javascript 获取纯内容,以及如何使 textarea 按原样显示内容?

谢谢

4

5 回答 5

7

我发现这是一个非常有趣的问题,所以我做了一些研究:我尝试了所有的 javascript 和 jQuery 函数来看看我会得到什么,但没有任何效果。您只能获得完全未解析或完全解析的 html。

我还偶然发现了这个 SO-question,这也证实了,遗憾的是,它只是无法完成:Getting raw text content of HTML element with HTML uninterpreted

于 2013-04-27T14:17:28.300 回答
1

对于任何在 2021 年提出这个问题的人。我的解决方案是使用 将文本放置在不同的文本区域中.innerHTML,然后使用document.getElementById("area").textContent获取纯文本,而不进行编码或转义。

于 2021-05-06T05:03:24.297 回答
0

.text()在 jQuery 中尝试方法。http://api.jquery.com/text/

于 2013-04-27T13:58:22.577 回答
0

你不能使用标准的 JavaScript.innerHTML吗?

这是一篇关于 JavaScript.innerHTML和 JQuery之间差异的相关文章.HTML() https://stackoverflow.com/a/3563136/2099977

于 2013-04-27T14:04:58.720 回答
0

在用户输入或从外部源加载输入时捕获输入。

于 2014-10-08T00:27:39.720 回答