以下是我的html& jquery脚本
<textarea id="id"></textarea>
<div class="messages"></div>
当我在textarea
中输入内容并按回车键时,它将运行以下脚本
var x = $("textarea#id").val();
$("div.messages").append("<span class='zz'>"+x+"</span>");
它成功运作。
但是当我在textarea
中输入html代码时,它只显示输入textarea
的html元素
即,当我输入<b>HTML</b>
时,它会显示 HTML ,但我需要<b>HTML</b>
..
我知道.text()
代替.html()
。
但我认为,它不适用于我的代码。
因为<span class="zz">
应该是一个html元素。
答案 0 :(得分:3)
试试这个: -
function escape(text) {
return text
.replace(/&/g, "&")
.replace(/</g, "<")
.replace(/>/g, ">")
.replace(/"/g, """)
.replace(/'/g, "'");
}
var x = $("textarea#id").val();
$("div.messages").append("<span class='zz'>"+escape(x)+"</span>");
答案 1 :(得分:0)
答案 2 :(得分:0)
也可以尝试将值放在pre标记内,这样它就不会被解释为HTML:
$('div.messages').html('<span class="zz"><pre>' + $("#id").val() + '</pre></span>');
然而,预标签内的东西无法设置样式。
答案 3 :(得分:0)
为什么每个人都这么复杂?
var x = $("textarea#id").val();
$("<span class='zz'></span>").text(x).appendTo($("div.messages"));