删除选项后是否可以让 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>