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 に答える