有一个需求:将后端传过来的文本(文本中含有html标签的字符串)赋值在textarea内,并且要求输出html的样式格式:
例如var str="你好,请按照需求,<font color="red">将这里文字变成红色。</font>"
1.刚开始尝试给textarea 赋值 :,发现html的font标签并没有转换为红色的样式输出,还是保留了标签的字符串形式。
<head>
<script type="text/javascript">
$(function() {
var str="你好,请按照需求,<font color="red">将这里文字变成红色。</font>"
$("#emailText").html(str);
})
</script>
</head>
<body>
<textarea rows="3" id="emailText" name="emailText" ></textarea>
</body>
2.后来我查了一下,发现textarea是纯文本的标签,赋值什么样的字符串都会原样输出,并不会对html标签进行转换。
3.这时查到可编辑的DIV标签是最好的选择。
<head>
<script type="text/javascript">
$(function() {
var str="你好,请按照需求,<font color="red">将这里文字变成红色。</font>"
$("div[name='emailTextDiv']").attr("style","word-wrap:break-word;word-break:break-all");
$("#emailTextDiv").html(emailText);
})
</script>
</head>
<body>
<div contenteditable="true" id="emailTextDiv" name="emailTextDiv"></div>
</body>
关于可编辑的DIV,涉及的属性:
contenteditable="true" ------这个属性为true代表可编辑
word-wrap:break-word;word-break:break-all ------这两个样式属性加在一起,输入文本时就可以自动换行