是否有更快的方法来清空HTML选择框?

And*_*per 9 html javascript select internet-explorer

我有一个HTML选择框,有大约1800多个选项.在我的javascript中,我有以下行清空选择框,以便我可以重新填充它.

box.options.length = 0; 
Run Code Online (Sandbox Code Playgroud)

在Firefox中运行相当快,但IE需要几秒钟.在IE中有更快的方法吗?

MK.*_*MK. 8

在某些时候,我通过将列表对象包含在div中来解决IE在这个领域的惨淡表现,然后当我需要重置它时,我只需将该div的innerHTML设置为全新的空列表html标记.我对细节很粗略,但我认为这就是我的所作所为.
请不要告诉任何人我建议你这样做.


cHa*_*Hao 6

一种应该更快的方法是创建一个具有相同属性的新选择框(当然没有选项),并用它替换现有的框.


kay*_*kay 5

你可以用box.innerHTML="".在我的测试中,它快68%:

http://jsperf.com/emptying-a-select-box/4.

更新:2015年 box.innerHTML = ""是最慢的选项的多个数量级.:-) box.options.length = 0改为使用.

  • 这些都是很好的答案,对我帮助很大.我已经给你打勾,因为这是我最接近的结果.使用jQuery` $(box).html('')`可以获得更好的性能. (3认同)