使用jQuery获取内部html而无需转义或解码任何内容
我正在开发某种在线html编辑器,但在使用jQuery获取textarea的内容时遇到了问题 Textarea元素如下所示:使用jQuery获取内部html而无需转义或解码任何内容,jquery,html,Jquery,Html,我正在开发某种在线html编辑器,但在使用jQuery获取textarea的内容时遇到了问题 Textarea元素如下所示: <textarea id="myText"><b><p>TEST</p></b></textarea> pTEST/p 因此,它是转义和未转义文本的混合体。但是,浏览器显示如下文本区域,这也是我不想要的: <b><p>TEST</p&g
<textarea id="myText"><b><p>TEST</p></b></textarea>
pTEST/p
因此,它是转义和未转义文本的混合体。但是,浏览器显示如下文本区域,这也是我不想要的:
<b><p>TEST</p></b>
测试
我想获得文本区域的内部html。如果我尝试.html()
,它将转义所有标记,如果我尝试.val()
,它将解码转义的标记。您可以在以下位置看到该行为:
如何使用Javascript获取纯内容,以及如何让textarea按原样显示内容
谢谢尝试jQuery中的
.text()
方法 您不能使用标准JavaScript.innerHTML
下面是一篇关于JavaScript
.innerHTML
和JQuery.HTML()
之间差异的相关文章。我发现这是一个非常有趣的问题,所以我做了一些研究:我尝试了所有JavaScript和JQuery函数,看看我会得到什么,但没有任何效果。您只能获得完全未解析或完全解析的html
我还偶然发现了这个问题,这也证实了,不幸的是,这是无法做到的:。在用户输入时捕获输入,或者从外部源加载时捕获输入。对于2021年提出此问题的人。。我的解决方案是使用
.innerHTML
将文本放在不同的文本区域,然后使用document.getElementById(“区域”).textContent
获取纯文本,而不进行编码或转义。.text()
返回与.val()
相同的结果,其效果与jQuery的.html()相同innerHTML
返回与.html()
相同的值,而textContent
返回解码后的表单,如.val()
我不确定您是否可以这样做,因为浏览器已经解释了标记,并且原始pTEST/p值已转换为html。我认为您只能使用.val()
以HTML的形式获取整个内容,或者使用.innerHTML
$(“#myText”).val($(“#myText”).HTML()以HTML的形式获取整个内容;这不是你要找的吗@不,不是。我给出了混合(转义和未转义)html文本,我想看到/得到它,因为这里有人解决了这个问题:@Alberrenshaw不幸的是,没有。。。请在此处查看我更新(但未成功)的JSFIDLE: