javascript - 添加元素时避免html格式化

标签 javascript jquery html css dom

我想使用下面的这个小函数向 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 属性仍然是格式化的,而不是仅仅将它们显示为纯文本。 (在上面的示例中,“格式化”字变为粗体)`

How can I avoid this text-formatting without massively changing my "add"-function?

我不能把代码改成

elem.innerText += element

因为这会杀死所有样式属性(如 background-color 等)

最佳答案

你可以试试xmp标签

function add() {
  var innerText = "this is a <xmp><b></xmp>formatted<xmp></b></xmp> test"
  var element = "<div style='background: red;'>\
                    <a href='#'>" + innerText + "</a>\
                  </div>"
  elem.innerHTML += element
}


add()
xmp {
  display: inline-block;
}
<div id="elem"></div>

关于javascript - 添加元素时避免html格式化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49086319/

相关文章:

javascript - 从 Android 中执行 HTML 文件中的 Javascript

javascript - GET方法上的JavaScript字符串和变量,语法错误?

javascript - 无法在 Chrome 上使用 Babylon.js 加载纹理

jquery - "oCol is Undefined"使用数据表和 jQuery Ui 对话框

javascript - 不从 HTML 中删除不可见的元素不好吗?

jquery - 提交按钮不适用于 html 代码

javascript - 使用 jquery 删除禁用属性后,输入字段为只读

javascript - 单击元素时如何使用 knockout.js css-binding 更改 bg-color?

javascript - 将所有主干模型属性写入 html 模板

asp.net - 摆脱 RadTab 的额外填充