如何将包含十六进制 unicode 字符的 innerHTML 更改为另一个具有 JavaScript 的相似字符?

How do I change innerHTML which contains hex unicode character for another similar character with JavaScript?

我有一个网站菜单,在具有子菜单的项目旁边显示向下箭头。此箭头 ( ▼ ) 包含在这样的跨度中: <span class="h-open-icon>&#9660;</span> 我想把它改成这样: <span class="h-open-icon>&#9650;</span>(本字:▲)

在 Javascript 中,我尝试使用以下代码(较大脚本的一部分)- 它可以很好地更改纯字母数字文本(例如 innerHTML === "text" 等)- 来更改当子菜单打开时它指向向上箭头:

let hstr = button.querySelector('.h-open-icon');
    if (hstr.innerHTML === "\&\#9660\;") {
        hstr.innerHTML = "\&\#9650\;";
    } else {
        hstr.innerHTML = "\&\#9660\;";
    }

但这不起作用。我认为这一定与转义字符有关,但我能找到的只是关于如何删除它们的帮助,而不是保留它们。我需要更改的只是# 后面的数字。谢谢。

您可以通过在 JS 中包含符号来回避问题:

let hstr = document.getElementById("toggle");
hstr.onclick = function(){
    if (hstr.innerHTML == "▼") {
        hstr.innerHTML = "▲";
    } else {
        hstr.innerHTML = "▼";
    }
}
<button id=toggle>▼</button>