如何在 HTML 和 Javascript 的动态列表中显示格式化的 HTML 文本

How to display formatted HTML text in dynamic list in HTML and Javascript

我想在 HTML 的动态列表中显示 HTML 格式的文本。但是,显示的不是格式化文本,而是 HTML 标签。这是代码片段

<!DOCTYPE html>
<html>
<body>

<ul id="myList">
  <li>Tea</li>
  <li>Milk</li>
  <li>Water</li>
</ul>

<p>Click the button to create a LI element.</p>

<button onclick="myFunction()">Try it</button>

<p id="demo"></p>

<script>
function myFunction() {
  var x = document.createElement("LI");
  var t = document.createTextNode(" I like <i>Coffee</i>");
  x.appendChild(t);
  document.getElementById("myList").appendChild(x);
}
</script>

</body>
</html>

单击“试用”按钮,您会发现我没有格式化 HTML 我在咖啡前得到斜体标签

代码有什么问题?

您可以在元素上使用 innerHTML 而不是使用 createTextNode 来添加包含 HTML 元素的文本,例如:

  var x = document.createElement("LI");
  x.innerHTML = " I like <i>Coffee</i>";

工作示例:

function myFunction() {
  var x = document.createElement("LI");
  x.innerHTML = " I like <i>Coffee</i>";
  document.getElementById("myList").appendChild(x);
}
<ul id="myList">
  <li>Tea</li>
  <li>Milk</li>
  <li>Water</li>
</ul>

<p>Click the button to create a LI element.</p>
<button onclick="myFunction()">Try it</button>

参考:Mozilla Docs for Element.innerHTML