添加选项以选择IE中的下拉列表

时间:2009-05-14 13:16:06

标签: javascript html

我正在尝试在运行时向选择下拉列表添加项目。到目前为止,它在Firefox和Opera中运行,但它似乎不适用于IE7或8。

应该发生的事情是,当用户选择一个中心时,人员下拉就会被中心的人员填充....

//Clear out the all of the exisiting items
if (document.getElementById("ddlPersonnel").hasChildNodes) {
    while (document.getElementById("ddlPersonnel").childNodes.length > 0) {
        document.getElementById("ddlPersonnel").removeChild(document.getElementById("ddlPersonnel").firstChild);
    }
}

//Add the "Select Personnel" option
var FirstOpt = document.createElement('OPTION');
FirstOpt.value = "";
FirstOpt.innerText = "Select Personnel";
alert("blah1");
document.getElementById("ddlPersonnel").options.add(FirstOpt, null);    //It dies here with a "Type Mismatch" error
alert("blah2");

它在两个警报之间的行上死亡并出现“类型不匹配”错误。

3 个答案:

答案 0 :(得分:6)

使用新选项而不是createElement。

var sel = document.getElementById("ddlPersonnel");
var opt = sel.options;
opt[opt.length] = new Option("Label","Value")

(这应该有效,但我还没有测试过)

答案 1 :(得分:2)

只需替换

document.getElementById("ddlPersonnel").options.add(FirstOpt, null);

通过

document.getElementById("ddlPersonnel").add(FirstOpt);

删除" .options"和",null"在add()函数中会做的伎俩

答案 2 :(得分:0)

根据我的经验,用纯JavaScript append()方法替换jQuery的appendChild()会导致我的项目出现在选择框中。