Javascript 如何使用createTextNode插入HTML实体?

Javascript 如何使用createTextNode插入HTML实体?,javascript,Javascript,如果我想将ascii符号表单js添加到某个节点? 尝试作为TextNode,但未将其作为代码进行解析: var dropdownTriggerText = document.createTextNode('blabla ∧'); createTextNode应该接受任何文本输入并将其完全插入DOM。这使得无法插入例如HTML元素和HTML实体。这实际上是一个特性,所以你不需要先逃避这些。相反,您只需在DOM上操作以插入文本节点 因此,您实际上可以直接使用&符号: var dro

如果我想将ascii符号表单js添加到某个节点? 尝试作为
TextNode
,但未将其作为代码进行解析:

var dropdownTriggerText = document.createTextNode('blabla ∧');

createTextNode
应该接受任何文本输入并将其完全插入DOM。这使得无法插入例如HTML元素和HTML实体。这实际上是一个特性,所以你不需要先逃避这些。相反,您只需在DOM上操作以插入文本节点

因此,您实际上可以直接使用
&
符号:

var dropdownTriggerText = document.createTextNode('blabla &');

不能使用HTML实体创建节点。您可以选择使用unicode值

var dropdownTriggerText = document.createTextNode('blabla \u0026');

或者设置元素的
innerHTML
。当然,您可以直接输入
&

我找不到一种自动化的方法。所以我做了一个函数

// render HTML as text for inserting into text nodes
function renderHTML(txt) {
  var tmpDiv = document.createElement("div"); tmpDiv.innerHTML = txt;
  return tmpDiv.innerText || tmpDiv.textContent || txt;
}

&
等不是ASCII码,它们是HTML实体。你是说
&?如果已经有一个DIV元素,并且您希望插入包含HTML实体的文本,则可以使用document.createHtmlNode()函数。例如:myHtmlNode=document.createHtmlNode('ABC DEF');appendChild(myHtmlNode);但我想,使用建议的unicode值仍然是最接近这一点的选项。