暂时隐藏HTML代码并稍后显示

时间:2014-01-17 21:53:02

标签: jquery html

我正在尝试从textarea-tag(TEMPORARILY)中删除所有HTML标记,但之后在页面上显示textarea值。

<textarea><span style="color: blue">Test</p></textarea><br />

Show textarea here: <span id="show"></span>

我的jQuery

$("#show").html($("textarea").val());

http://jsfiddle.net/vQD5w/

这就是我现在展示textarea内容的方式,这就是它最终的表现。同时我想隐藏textarea中的HTML代码,因此textarea内部的内容对普通PC用户来说看起来并不丑陋。因此,Textarea应仅包含“测试”(无引号)。

所以基本上我想要转义所有HTML标签,元素以及与textarea-tag中的HTML INSIDE相关的所有内容,但稍后会使用它。

5 个答案:

答案 0 :(得分:2)

您可以使用正则表达式去除标记barring that you aren't trying to parse it

$("#show").html($("textarea").val());
var text = $('textarea').val();
$('textarea').val(text.replace(/(<([^>]+)>)/ig,""));

示例:http://jsfiddle.net/brandonscript/ffC4q/

答案 1 :(得分:0)

这就是你想要做的。将textarea的值放在show span中。然后用正则表达式从textarea中删除html标签。

$inner = $("textarea").val();
$("#show").text($inner);
$('textarea').val(text.replace(/(<([^>]+)>)/ig,""));

如此JSFiddle

所示

答案 2 :(得分:0)

您可以使用contenteditable div而不是textarea来获得所需的结果。

<div contenteditable='true'><span style="color: blue">Test</span></div><br />

然后你得到html而不是val()

$("#show").html($("div").html());

如果您希望它看起来像文本区域,可以在div周围放置一个边框。

http://jsfiddle.net/EnKLA/

答案 3 :(得分:0)

你可以通过用正则表达式替换html标签来实现:

HTML:

<textarea id="textArea"><span style="color: blue">Test</span></textarea><br />

Show textarea here: <span id="show"></span>

JS:

var textWOHTML = $("textarea").val().replace(/<(.|\n)*?>/, '').replace(/<\/(.|\n)*?>/, '');
var textWithHTML = $("textarea").val();
$('#textArea').val(textWOHTML);
$("#show").html(textWithHTML);

这是小提琴:http://jsfiddle.net/vQD5w/2/

答案 4 :(得分:-2)

由于我明显误解了他的确切需要,我已经删除了我的建议!