10

我想在 <option> 元素的文本包含 HTML 实体的 <select> 元素中添加一个 <option> 元素: —

在 HTML 中,代码如下所示:

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

我的 JavaScript 代码如下所示:

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

但是,如果您对此进行测试,您将看到 — 变得逃脱。当我尝试时,我得到了同样的结果:

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

(观察到的行为是在 Internet Explorer 7 中……没有用 Firefox、Safari 等进行测试。Internet Explorer 7 是我目前唯一需要的浏览器。)

4

3 回答 3

18

我刚刚意识到我可以使用 Unicode JavaScript 转义:

e.options[0] = new Option('\u2014 Select One \u2014', '');
于 2009-01-08T18:03:14.167 回答
7

您不需要转义实体 - 它的工作原理如下:

function selectOne() {
      var e = document.getElementById('test');
      e.options[0] = new Option('— Select One —', '');
}
于 2009-01-08T18:01:15.170 回答
3

textproperty 不会被转义,因为它是按字面意思理解的。如果您使用innerHTML,实体将转换为相应的字符。

e.options[o].innerHTML = '&mdash; Select One &mdash;';
于 2009-03-17T20:04:53.267 回答