Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将选项添加到“选择”并在internet explorer上选择一个选项_Javascript_Html_Internet Explorer - Fatal编程技术网

Javascript 将选项添加到“选择”并在internet explorer上选择一个选项

Javascript 将选项添加到“选择”并在internet explorer上选择一个选项,javascript,html,internet-explorer,Javascript,Html,Internet Explorer,我有一个select,我正在使用javascript填充选项。差不多 var select = document.getElementById("selectBox"); for (var i = 0; i < data.length; i++) { var option = document.createElement("option"); option.innerHTML = data[i].name; option.v

我有一个select,我正在使用javascript填充选项。差不多

    var select = document.getElementById("selectBox");

    for (var i = 0; i < data.length; i++) {
        var option = document.createElement("option");
        option.innerHTML = data[i].name;
        option.value = data[i].id;
        select.appendChild(option);
    }

使用
add
而不是
appendChild

select.add(option);
此外,使用
选项
构造函数可以为您保存一些代码行:

var option = new Option(data[i].name, data[i].id);
你可以试试这个

Javascript

var select = document.getElementById("selectBox"),
    data = [{ name: "y", id: "b" }, { name: "z", id: "c" }],
    i;

for (i = 0; i < data.length; i += 1) {
    var option = document.createElement("option");
    
    option.appendChild(document.createTextNode(data[i].name));
    // or alternately
    //option.text = data[i].name;
    option.value = data[i].id;
    select.appendChild(option);
}
var select=document.getElementById(“selectBox”),
数据=[{name:“y”,id:“b”},{name:“z”,id:“c”}],
我
对于(i=0;i


当然也有@MaxArt所描述的符合标准的方法,问题是我从哪里获得所选的值。我使用的是ajax调用,IE(我想)正在缓存响应。当我更改一些值时,服务器必须给我正确的选择选项,但它给了我错误的选项,因为IE总是读取相同的答案。

您如何在IE上看到生成的HTML?您使用的是哪个版本的IE?它在IE9和IE10中运行良好。我在你的代码中看不到任何东西可以阻止它在IE8中运行。在IE8中工作正常,刚刚测试过。@mohkkhan我在工具开发工具(或按F12)中看到html你的浏览器模式可能是10,但文档模式可能有点怪。。。把这个元标签放在头部分<代码>
我的解决方案是。我能解释一下投票失败的原因吗?是的,但很难看。很抱歉只是主观品味的问题。没什么私事。@c69“丑陋”?你在开玩笑吧?这是基本的Javascript API。你应该投票否决一个糟糕的答案。天哪,它甚至:(现在对你的答案投赞成票。但意见是站得住脚的。@c69完成了。真的,那些
特定的方法经常被忽略。有时,甚至被W3C自己忽略了。这是关于
元素,而不是
@MaxArt,我很确定这是同一个问题,但还没有找到它的实际错误报告。因此,我将删除它。)t信息。实际上,似乎IEE中的选项存在某种奇怪的行为设置
innerHTML
,基本上
innerHTML
Internet Explorer
都是尽可能避免的:微软推出的
innerHTML
——是web开发的天赐之物,现在它得到了广泛的支持,甚至在移动浏览器中也是如此。在过去,IE本身在某些情况下不能正确使用它是一件很遗憾的事(使用
innerHTML
,表格是另一个棘手的问题)。
var option = new Option(data[i].name, data[i].id);
var select = document.getElementById("selectBox"),
    data = [{ name: "y", id: "b" }, { name: "z", id: "c" }],
    i;

for (i = 0; i < data.length; i += 1) {
    var option = document.createElement("option");
    
    option.appendChild(document.createTextNode(data[i].name));
    // or alternately
    //option.text = data[i].name;
    option.value = data[i].id;
    select.appendChild(option);
}