我正在尝试在运行时向选择下拉列表添加项目。到目前为止,它在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");
它在两个警报之间的行上死亡并出现“类型不匹配”错误。
答案 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()
会导致我的项目出现在选择框中。