Javascript 动态设置IE上选择的选项

Javascript 动态设置IE上选择的选项,javascript,internet-explorer,dom,select,prototypejs,Javascript,Internet Explorer,Dom,Select,Prototypejs,我正在使用从Ajax调用获得的数据设置大约10+个Select控件;以下是我的代码: function arrayToOptionList(list) { var optList = []; for (i = 0; i < list.length; i++) { optList.push("<option value ='" + list[i][1] + "' >" + list[i][0] + "</option>");

我正在使用从Ajax调用获得的数据设置大约10+个Select控件;以下是我的代码:

function arrayToOptionList(list) {

    var optList = [];
    for (i = 0; i < list.length; i++) {
        optList.push("<option value ='" + list[i][1] + "' >" + list[i][0] + "</option>");
    }

    return optList.join("");

}

 opt = arrayToOptionList(list);
 $("select_ctrl_id").update(opt);
我知道IE在dom操作方面存在重大问题。在谷歌搜索了几次之后,我优化了我的IE代码。我仍然发现我的IE在设置Select控件时有一段时间没有响应。 你们能建议我还能做些什么来改善这个问题吗

我正在使用prototype.js设置select控件,我在IE 8/9上遇到了这个问题

根据我的经验,使用innerHTML最适合IE,因此请尝试将其与普通DOM脚本结合使用:

document.querySelector('#select_ctrl_id').innerHTML = opt.join('');

尝试使用Prototype提供的内置方法-例如

var select = $("select_ctrl_id").clone();
list.each(function(i){
    select.insert(new Element('option',{'value':i[1]}).update(i[0]));
});
$("select_ctrl_id").replace(select);

这将创建select DOM元素的副本,并在select中插入所有选项,然后替换select。

从IE评测中,我发现更新占用了大部分时间。你知道如果改用jQuery是否会有所改进吗?或者我需要处理我遗漏的任何其他内容?opt和我声明的内容在哪里?也许你应该尝试一个网络工作者或承诺遵循课程5。你真的认为一次添加每个元素会提高性能吗?!!也许我应该在IE上测试它在IE上工作吗?!Select的innerHTML在IE上存在已知问题。您能否在上面的问题中添加一个应用此问题的html片段。以及ajax调用中的一些值,因此我们可以从我的ajax调用中测试它。返回的列表非常类似:[['option name 1','option value 1'],['option name 2','option value 2']]
var select = $("select_ctrl_id").clone();
list.each(function(i){
    select.insert(new Element('option',{'value':i[1]}).update(i[0]));
});
$("select_ctrl_id").replace(select);