¿Cómo creo dinámicamente una < opción > en JavaScript que contiene una entidad HTML (& # 8212; & # 8230; & # 171;)

StackOverflow https://stackoverflow.com/questions/425234

Pregunta

Me gustaría agregar una < opción > elemento a < seleccione > elemento donde la opción < > El texto del elemento contiene una entidad HTML: & amp; mdash;

En HTML, el código se vería así:

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

Mi código JavaScript se ve así:

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

Sin embargo, como verá si prueba esto, el & amp; mdash; se escapa Tuve el mismo resultado cuando lo intenté:

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

(El comportamiento observado estaba en Internet & nbsp; Explorer 7 ... no se probó con Firefox, Safari, etc. - Internet & nbsp; Explorer 7 es el único navegador que necesito en este momento.)

¿Fue útil?

Solución

Me acabo de dar cuenta de que podría usar un escape de JavaScript Unicode:

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

Otros consejos

No necesita escapar de la entidad, funciona así:

function selectOne() {
      var e = document.getElementById('test');
      e.options[0] = new Option('— Select One —', '');
}
La propiedad

text no se escapa, ya que debe tomarse literalmente. Si usa innerHTML , las entidades se convierten a los caracteres correspondientes.

e.options[o].innerHTML = '&mdash; Select One &mdash;';
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top