我有一个包含&#x25bc的标签; (在呈现的页面上显示为▼):
<span id=up_down>▼</span>
问题在于,当我尝试将innerHTML与&amp;#x25bc;
进行比较时而是试图比较▼==&amp;#x25bc; (并且失败了)
var e = document.getElementById("up_down");
if ( e.innerHTML == '▲' )
{
e.innerHTML = '▼';
}
else if ( e.innerHTML == '▼' )
{
e.innerHTML = '▲';
}
答案 0 :(得分:4)
尝试escape()
并改为使用%u25BC
和%u25B2
。
var e = document.getElementById("up_down");
if ( escape(e.innerHTML) == '%u25B2' )
{
e.innerHTML = '▼';
}
else if ( escape(e.innerHTML) == '%u25BC' )
{
e.innerHTML = '▲';
}
答案 1 :(得分:1)
尝试比较字符代码:
if(e.textContent.charCodeA(0) == 0x25bc) {
// Your code
}
现在您将实际字符与包含其HTML实体表示的字符串进行比较。
答案 2 :(得分:0)
尝试这样的事情:
var upArrow = String.fromCharCode('0x25b2');
var downArrow = String.fromCharCode('0x25bc');
if ( e.innerHTML == upArrow )
{
e.innerHTML = downArrow;
}
else if ( e.innerHTML == downArrow )
{
e.innerHTML = upArrow;
}