var opt = $("select option:first");
opt.remove();
$("button").on("click", function() {
$("select").prepend(opt).val(1);
});
これは一部のブラウザでは正常に機能します。しかし、もちろん、IEはその1つではありません。IEでは、コンボは2つのオプションで終了しますが、テキストは空白になります(選択されたオプションはありません)。これは、オプションがまだDOMにロードされていないためだと思います。代わりにこのコードを使用してこの問題を簡単に修正できるため、私は推測します。
var opt = $("select option:first");
opt.remove();
$("button").on("click", function() {
$("select").prepend(opt);
setTimeout(function() {
$("select").val(1);
}, 1);
});
しかし、私はもっと良いものを好みます。何か案は?
注:セレクターなどのパフォーマンスは求めていません。投稿されたコードは単なる縮小例であり、私の実際のスクリプトではありません。