オプションが削除された後、IE 7/8 で選択ボックスの幅を再計算することは可能ですか? 私が見つけたのは、最大のオプションの幅が「記憶」されており、その最大のオプションが削除された後、優れたブラウザーのように幅が縮小されないことです。
要素の直後にコードを実行しても問題は発生せず、DOM の準備が整った後にオプションを操作しようとする場合にのみ発生します。クローンは機能しますが、より良い方法はありますか?
<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
<select id="select">
<option value="a">aaa</option>
<option value="b">bbb bbb bbb bbb bbb bbb bbb bbb</option>
</select>
<script>
// select box is emptied and resizes
//$("#select").empty();
// long option is removed and select resizes
//document.getElementById("select").options.remove(1);
$(function(){
// select does not resize after DOM ready
$("#select").empty();
// or with this:
//document.getElementById("select").options.remove(1);
/* cloning works
var $select = $("#select"),
$clone = $select.clone();
$clone.empty();
$select.replaceWith($clone);
*/
});
</script>