我想添加<选项>元素到< select>元素所在的<选项> element的文本包含一个HTML实体:& mdash;
在HTML中,代码如下所示:
<select name="test" id="test">
<option value="">— Select One —</option>
</select>
我的JavaScript代码如下所示:
function selectOne() {
var e = document.getElementById('test');
e.options[0] = new Option('— Select One —', '');
}
但是,正如您将看到的那样,如果你测试这个,那么&amp; mdash;变得逃脱。我尝试时得到了相同的结果:
e.options[o].text = '— Select One —';
(观察到的行为是在Internet Explorer 7中...没有使用Firefox,Safari等进行测试 - Internet Explorer 7是我目前唯一需要的浏览器。)
答案 0 :(得分:18)
我刚刚意识到我可以使用Unicode JavaScript转义:
e.options[0] = new Option('\u2014 Select One \u2014', '');
答案 1 :(得分:7)
你不需要逃避实体 - 它的工作原理如下:
function selectOne() {
var e = document.getElementById('test');
e.options[0] = new Option('— Select One —', '');
}
答案 2 :(得分:2)
text
属性未被转义,因为它意味着字面意思。如果您使用innerHTML
,则实体会转换为相应的字符。
e.options[o].innerHTML = '— Select One —';