Javascript – How to dynamically create an


I'd like to add an <option> element to a <select> element where the <option> element's text contains an HTML entity: &mdash;

In HTML, the code would look like this:

<select name="test" id="test">
    <option value="">&mdash; Select One &mdash;</option>

My JavaScript code looks like this:

function selectOne() {
  var e = document.getElementById('test');
  e.options[0] = new Option('&mdash; Select One &mdash;', '');

However, as you will see if you test this, the &mdash; becomes escaped. I had the same outcome when I tried:

e.options[o].text = '&mdash; Select One &mdash;';

(Observed behavior was in Internet Explorer 7 … did not test with Firefox, Safari, etc. — Internet Explorer 7 is the only browser I need at the moment.)

Best Answer

I just realized I could use a Unicode JavaScript escape:

e.options[0] = new Option('\u2014 Select One \u2014', '');