< option>を動的に作成するにはどうすればよいですか? HTMLエンティティ(—…«)を含むJavaScriptで?

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

質問

< option>を追加したい< select>への要素< option>の要素要素のテキストにはHTMLエンティティが含まれます:& mdash;

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;', '');
}

ただし、これをテストするとわかるように、&amp; mdash;エスケープされます。試したとき、私は同じ結果になりました:

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

(観察された動作はInternet&nbsp; Explorer 7でした... Firefox、Safariなどではテストしませんでした。現時点ではInternet&nbsp; Explorer 7のみが必要です。)

役に立ちましたか?

解決

Unicode JavaScriptエスケープを使用できることに気付きました:

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

他のヒント

エンティティをエスケープする必要はありません-次のように機能します:

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

text プロパティはエスケープされません。文字どおりに取得するためのものです。 innerHTML を使用する場合、エンティティは対応する文字に変換されます。

e.options[o].innerHTML = '&mdash; Select One &mdash;';
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top