这里我有一个文本框,其中用户输入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标签打招呼
我尝试逃避和取消景观,但它没有帮助
答案 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,'<').replace(/>/g,'>');
$('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)
如果你想要html_entities ....
尝试phpjs项目
https://github.com/kvz/phpjs/blob/master/functions/strings/htmlentities.js
..它还需要此功能https://github.com/kvz/phpjs/blob/master/functions/strings/get_html_translation_table.js
答案 5 :(得分:0)
PHPJS是这类“如何在Javascript中使用此PHP函数?”的绝佳资源。的问题。
Javascript htmlentities()