1

我有一个<select>我用 JQ 添加的,它加载了类(值+数据)列表中的所有选项,通过$.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+ 个项目开始。

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

4

2 回答 2

1

尝试使用本机for循环而不是jQuery.each. 它应该会给您带来显着的性能改进,尤其是当您的数组中有这么多项目时。看看这个比较http://jsperf.com/jquery-each-vs-for-loop/69

于 2012-10-16T09:17:17.477 回答
0

如果你改变会发生什么

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

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

选择中的数千个项目似乎也无法使用,也许您应该考虑不同的设计。

于 2012-10-16T09:12:54.273 回答