如何将包含十六进制 unicode 字符的 innerHTML 更改为另一个具有 JavaScript 的相似字符?
How do I change innerHTML which contains hex unicode character for another similar character with JavaScript?
我有一个网站菜单,在具有子菜单的项目旁边显示向下箭头。此箭头 ( ▼ ) 包含在这样的跨度中:
<span class="h-open-icon>▼</span>
我想把它改成这样:
<span class="h-open-icon>▲</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>
我有一个网站菜单,在具有子菜单的项目旁边显示向下箭头。此箭头 ( ▼ ) 包含在这样的跨度中:
<span class="h-open-icon>▼</span>
我想把它改成这样:
<span class="h-open-icon>▲</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>