【问题标题】:jQuery Escaping HTML from a TextareajQuery 从 Textarea 中转义 HTML
【发布时间】:2010-07-28 13:09:03
【问题描述】:

我想将 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());

我想我的问题是我不明白如何在不操作 DOM 元素的情况下操作 jQuery 对象,比如字符串——因为我现在使用的是 div,因为它有 .html() 方法。

任何帮助都会很棒!

谢谢。

【问题讨论】:

    标签: jquery html textarea entities


    【解决方案1】:

    试试

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

    【讨论】:

    • +1 你比我快,但我认为你的第二个解决方案行不通。它只会给你文本内容。 jsfiddle.net/wtXBg/1
    • 哇!谢谢...不能说我完全理解它是如何工作的,但它确实有效! (第一个)谢谢!
    • @patric - 我可以问你一些事情吗?...我的声誉得分最近有点尴尬...有时,它不会添加投票?...有错误在这里吗?
    • @Reigel - 如果您获得了最高的每日点数(200),那么在您低于最高点数的 24 小时内,您将无法获得积分。不过,您仍然会因接受的答案而获得积分。欲了解更多信息,请查看meta.stackoverflow.com :o)
    • Reigel,我不知道有什么问题;检查您的reputation audit;在最底部(“总代表”),它向您显示重新计算后您将获得多少代表,即您应该真正拥有多少代表。如果您想要重新计算,只需要求一个(使用“主持人标志”按钮)。有关代表审核的更多信息,请参阅meta.stackexchange.com/questions/43004/…
    猜你喜欢
    • 2016-05-10
    • 1970-01-01
    • 2011-11-21
    • 1970-01-01
    • 2012-06-06
    • 1970-01-01
    • 1970-01-01
    • 2013-01-22
    • 1970-01-01
    相关资源
    最近更新 更多