如何比较包含十六进制字符引用的innerHTML?

har*_*nic 4 javascript hex

我有一个包含 ▼ ; 的标签 (在渲染页面上显示为 \xe2\x96\xbc):

\n\n
<span id=up_down>&#x25bc;</span>\n
Run Code Online (Sandbox Code Playgroud)\n\n

问题是,当我尝试将 innerHTML 与 ▼ 进行比较时;

\n\n

相反,它尝试比较 \xe2\x96\xbc == ▼ ; (并且失败)

\n\n
var e = document.getElementById("up_down");\nif ( e.innerHTML == \'&#x25b2;\' )\n{\n  e.innerHTML = \'&#x25bc;\';\n}\nelse if ( e.innerHTML == \'&#x25bc;\' )\n{\n  e.innerHTML = \'&#x25b2;\';\n}\n
Run Code Online (Sandbox Code Playgroud)\n

Mar*_*in. 5

尝试escape()并使用%u25BCand%u25B2代替。

\n\n
var e = document.getElementById("up_down");\nif ( escape(e.innerHTML) == \'%u25B2\' )\n{\n  e.innerHTML = \'&#x25bc;\';\n}\nelse if ( escape(e.innerHTML) == \'%u25BC\' )\n{\n  e.innerHTML = \'&#x25b2;\';\n}\xe2\x80\x8b\n
Run Code Online (Sandbox Code Playgroud)\n\n

演示

\n