【发布时间】:2018-08-11 16:23:55
【问题描述】:
我想使用下面的这个小函数向 HTML DOM 添加一个元素:
function add() {
var text = "this is a <b>formatted</b> test"
var element = "<div style='background: red;'>\
<a href='#'>" + text + "</a>\
</div>"
elem.innerHTML += element
}
add();
到目前为止我得到了什么:
<div id="elem"></div>
<p style="margin-top: 10%">This is what it should look like (of course no blanks):</p>
<div style="background: red;">
<a href='#'>
this is a < b >formatted< / b > test
</a>
</div>
通过更改text 属性,可以更改此元素上的文本。但是,HTML 属性仍然被格式化,而不是仅仅将它们显示为纯文本。 (在上面的示例中,“格式化”字变为粗体)`
如何在不大量更改“添加”功能的情况下避免这种文本格式?
我不能把代码改成
elem.innerText += element
因为这会杀死所有的样式属性(如background-color等)
【问题讨论】:
-
'通过改变“innerText”' - 你显然没有做什么:
elem.innerHTML += elementO.o -
因为
elem.innerText会杀死样式属性!这是关于“文本”变量@Andreas -
你只需要将字符串中的 HTML 转义即可。见Escaping HTML strings with jQuery
标签: javascript jquery html css dom