jQuery 从文本区域中转义 HTML

7

我希望将HTML标签转换为实体名称,从一个textarea中获取文本并将结果放入第二个textarea,使得:

<mytag>

变为

&lt;mytag&gt;

我正在使用.html().text()来回切换。我的问题是处理textarea元素,它的行为有些不同。

如果我首先将文本放入一个 div 中,它就可以正常工作:

var htmlStr = $('#textareaInput').val(); //doesn't like .html() .text() ?
$('#dummy').text(htmlStr); // an object to hold the text that supports .html() 
$('#textareaOutput').val($('#dummy').html());

但我想做更直观的事情,像这样:
var htmlStr = $('#textareaInput').val(); 
$('#textareaOutput').val($(htmlStr).html());

我想我的问题在于不知道如何操作jQuery对象(如字符串),而不是操纵DOM元素——因为目前我正在使用div,因为它具有.html()方法。

任何帮助都将是极好的!

谢谢。

1个回答

5

尝试

var htmlStr = $('#textareaInput').val(); 
$('#textareaOutput').val($('<div/>').text(htmlStr).html());

哇!谢谢……我不能说我完全理解它是如何工作的,但它确实有效!(第一个)谢谢你! - Wayne
@Reigel - 如果您已经获得了每日点赞的最大积分(200),那么在您达到24小时期限之前,您将不会获得积分。但是,您仍然可以通过被接受的答案获得积分。欲了解更多信息,请访问http://meta.stackoverflow.com/ :o) - user113716
Reigel,我不知道有任何问题;请检查您的声望审计;在底部(“总声望”)它会显示重新计算后您将拥有多少声望,即您应该真正拥有多少声望。如果您想要重新计算,请请求一次(使用“向管理员标记”按钮)。有关声望审计的更多信息,请参见http://meta.stackexchange.com/questions/43004/how-do-i-audit-my-reputation。 - balpha
@balpla,现在经过声誉审核,我的声望从7,129下降到6,924...哈哈 - Reigel Gallarde
@Will 嗯...不用担心... :D - Reigel Gallarde
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接