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

textプロパティは文字どおりに解釈されることを意図しているため、エスケープされません。を使用するinnerHTMLと、エンティティは対応する文字に変換されます。

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