jQuery 将 Html 转换为文本并返回

Posted

技术标签:

【中文标题】jQuery 将 Html 转换为文本并返回【英文标题】:jQuery Convert Html To Text And Back 【发布时间】:2015-02-21 13:03:06 【问题描述】:

如果我的网页上有一个文本区域供用户输入文本,我如何将其转换为在按下按钮时显示为 html,反之亦然?我正在寻找类似 wordpress 在用户输入文本然后将其转换为 html 或可以编写 html 并将其转换为文本时所做的事情。

到目前为止,我已经尝试了几段代码:

var text_only = $('.snippet').text();

这只会显示没有标签的html,这不会按预期呈现html,其他的也好不了多少

修正:请参阅链接以获得更好的说明 - http://www.w3schools.com/html/tryit.asp?filename=tryhtml_basic_document

谢谢

尼克

【问题讨论】:

不太清楚。您的意思是您希望 textarea 中的确切文本成为 HTML 吗?或者你有[b] 之类的标签吗? 是的,很像这里:w3schools.com/html/tryit.asp?filename=tryhtml_basic_document 他们使用的是iframe 谢谢@Itay 在 iframe 中有什么特别需要我查看的内容吗? 并非如此。例如,参见this。此外,text() 不适用于 textareaval() 【参考方案1】:

你的意思是这样的吗? http://jsfiddle.net/7crysb0L/2

js:

$('#dohtml').click(function() 

    var textAreaVal = $('#myTextArea').val();

    $('#myDiv').html(textAreaVal);

);

$('#dotext').click(function() 

    var textAreaVal = $('#myTextArea').val();

    $('#myDiv').text(textAreaVal);

);

html:

<textarea id="myTextArea" placeholder="Type here, then click the button to update the div"></textarea>
<br />

<button id="dohtml">Make HTML</button>
<button id="dotext">Make Text</button>
<div id="myDiv"></div>

这会产生两个按钮。单击“制作 HTML:使用 textarea 中的 HTML 填充 myDiv,然后单击“制作文本” - 将 textarea 的内容视为文本并使用可见的 HTML 标签填充 div。

值得注意的是,这不是应该在当前状态下使用的代码,除非它只是客户端,因为它很容易插入不安全的值 - 例如,尝试运行 JS fiddle,将 &lt;/textarea&gt;&lt;script&gt;alert('lol')&lt;/script&gt; 插入文本区域,然后单击“制作 HTML”以查看原因....您不想像这样将未经清理的垃圾保存到后端某个地方,但如果它只是用于演示目的,应该没问题。

jQuery html api 参考:http://api.jquery.com/html/

【讨论】:

【参考方案2】:
var text_only = '&lt;div&gt;' + $('.snippet').text() + '&lt;/div&gt';

这里是小提琴:http://jsfiddle.net/p5hnttga/

【讨论】:

以上是关于jQuery 将 Html 转换为文本并返回的主要内容,如果未能解决你的问题,请参考以下文章

PHP Jquery:从给定的 url 将 HTML 转换为 JSON 并创建 html 元素的树视图

使用jquery将文本框转换为多行

关于jQuery的ajax获取带html标签元素返回的问题

用jquery 读取文件域中的文件并读取

将 jquery 元素转换为 html 元素

jQuery获取textarea文本