在ie8中添加选项时动态选择冻结

时间:2012-10-16 09:06:50

标签: javascript jquery ajax json

我有一个{J}添加的<select>, 它通过$.ajax调用返回类(值+数据)列表中的所有选项,并将其加载到div。

我的代码:

varTempDiv+= '<select class="selectFromList" width="200">';
$.each(data.d, function (index) {                                          
    varTempDiv+= '<option value="' + this.value >+ '">' + this.txtName + '</option>';
});
varTempDiv+= '</select>';
$("#loadedDiv").html(varTempDiv);

它在chrome中工作得很好, 但是在ie8中它冻结到了第二个附加到列表长度。 长度从100到1000多个项目开始。

我该如何解决这个问题? 谢谢!

2 个答案:

答案 0 :(得分:1)

尝试使用原生for循环代替jQuery.each。它应该会给您带来显着的性能提升,特别是如果您的阵列中有这么多项目。看看这个比较http://jsperf.com/jquery-each-vs-for-loop/69

答案 1 :(得分:0)

如果您更改

会发生什么
varTempDiv+= '<option value="' + this.value >+ '">' + this.txtName + '</option>'; 

varTempDiv+= '<option value="' + this.value + '">' + this.txtName + '</option>';

选择中的千件物品似乎也无法使用,也许你应该考虑不同的设计。