Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to compare innerHTML containing a hexadeximal character reference?

Tags:

javascript

hex

I have a tag containing &#x25bc ; (which is displayed as ▼ on the rendered page) :

<span id=up_down>&#x25bc;</span>

The problem is that when I try and compare innerHTML against &#x25bc ;

it is instead trying to compare ▼ == &#x25bc ; (and failing)

var e = document.getElementById("up_down");
if ( e.innerHTML == '&#x25b2;' )
{
  e.innerHTML = '&#x25bc;';
}
else if ( e.innerHTML == '&#x25bc;' )
{
  e.innerHTML = '&#x25b2;';
}
like image 537
harmonic Avatar asked Sep 16 '25 09:09

harmonic


1 Answers

Try to escape() it and use %u25BC and %u25B2 instead.

var e = document.getElementById("up_down");
if ( escape(e.innerHTML) == '%u25B2' )
{
  e.innerHTML = '&#x25bc;';
}
else if ( escape(e.innerHTML) == '%u25BC' )
{
  e.innerHTML = '&#x25b2;';
}​

demo

like image 197
Martin. Avatar answered Sep 19 '25 00:09

Martin.