javascript中的html_entities

时间:2011-05-02 07:14:35

标签: javascript jquery html-entities

这里我有一个文本框,其中用户输入html标签,如<h1>hello</h1>然后我将该文本附加到td

 var text = $('textbox').val();
 $('table').append('<tr><td style="padding:0px 12px;color:black">'+(text)+'</td></tr>');

现在我想要的是td中的文本应该是输入<h1>hello</h1>的文本而不是用h1标签打招呼

我尝试逃避和取消景观,但它没有帮助

6 个答案:

答案 0 :(得分:2)

此处使用编码功能HTML-encoding lost when attribute read from input field

function htmlEncode(value){
  return $('<div/>').text(value).html();
}

 var text = htmlEncode($('textbox').val());
 $('table').append('<tr><td style="padding:0px 12px;color:black">'+(text)+'</td></tr>');

答案 1 :(得分:1)

这是一个没有jQuery overkill的简单JavaScript函数:

function htmlEncode(str) {
    return str.replace(/[<>&"']/g, function($0) { return "&" + {"<":"lt",">":"gt","&":"amp",'"':"quot","'":"#39"}[$0] + ";"; });
}

这会查找<>&"'的任何匹配项,调用该函数然后查找匹配的字符并返回相应的字符引用。

答案 2 :(得分:0)

您可以尝试替换&lt; by&amp; lt;和&gt;通过&amp; gt;

var text = $('textbox').val();
text = text.replace(/</g,'&lt;').replace(/>/g,'&gt;');
$('table').append('<tr><td style="padding:0px 12px;color:black">'+(text)+'</td></tr>');

您可以在此处自行测试:http://jsfiddle.net/W7RWA/

答案 3 :(得分:0)

您需要使用val() method

设置节点值
// Untested
var text = $('textbox').val();
var tr = $('<tr><td style="padding:0px 12px;color:black"></td></tr>');
tr.find("td").val(text);
$('table').append(tr);

答案 4 :(得分:0)

答案 5 :(得分:0)

PHPJS是这类“如何在Javascript中使用此PHP函数?”的绝佳资源。的问题。

Javascript htmlentities()