¿Cómo creo dinámicamente una < opción > en JavaScript que contiene una entidad HTML (& # 8212; & # 8230; & # 171;)
-
06-07-2019 - |
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="">— Select One —</option>
</select>
Mi código JavaScript se ve así:
function selectOne() {
var e = document.getElementById('test');
e.options[0] = new Option('— Select One —', '');
}
Sin embargo, como verá si prueba esto, el & amp; mdash; se escapa Tuve el mismo resultado cuando lo intenté:
e.options[o].text = '— Select One —';
(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.)
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 —', '');
}
text
no se escapa, ya que debe tomarse literalmente. Si usa innerHTML
, las entidades se convierten a los caracteres correspondientes.
e.options[o].innerHTML = '— Select One —';