在IE中使用.innerHTML添加选项元素无效

Adding option elements using .innerHTML in IE is not working

本文关键字:添加 选项 元素 无效 innerHTML IE      更新时间:2023-09-26

我有一个值为的变量ddEmail

<option value="cp@cp.ljj" selected="">cp@cp.ljj</option>.

当我尝试使用将其放入选择元素时

document.getElementById("txtEmail").innerHTML = ddEmail;

那么在Firefox中,document.getElementById("txtEmail").innerHTML显示与ddEmail相同的值,而在IE中,它显示cp@cp.ljj</option>

有什么办法解决吗?

正如您所发现的,您不能可靠地使用innerHTML来设置现有select的选项。

通过selectoptions属性的最佳方式:

var option = new Option("cb@cb.ljj", "cb@cb.ljj");
//  Option text --------^            ^---- option value
option.selected = true;
document.getElementById("txtEmail").options.add(option);

请注意,由于历史原因,它是add,而不是pushpush适用于许多浏览器,但并非所有浏览器。

还要注意,上面假设select中没有选项,或者您只想添加这个选项,而不是用它替换所有已经存在的选项。如果您想删除以前的选项:

var sel = document.getElementById("txtEmail");
sel.options.length = 0;
sel.options.add(option);