我有以下简单的脚本
<input type="button" onclick="document.getElementById('a').innerHTML = '<option>something</option>';"/>
<select id="a" style="width: 150px;">
</select>
但它在IE中不起作用。 你能告诉我为什么吗? 感谢
答案 0 :(得分:2)
最好让AJAX脚本返回包含所需选项的JSON对象,然后使用DOM方法创建匹配它们的选项节点。
如果你真的必须使用HTML字符串,那么这样做的方法是编写一个全新的<select>
元素,里面有选项。然后,您可以将<option>
节点中的信息复制到您最初定位的选择中。
var select= document.getElementById('a');
select.options.length= 0;
var div= document.createElement('div');
div.innerHTML= '<select>'+options+'</select>';
var options= div.firstChild.options;
for (var i= 0; i<options.length; i++) {
var o= options[i];
select.options[i]= new Option(o.text, o.value, o.selected);
}
答案 1 :(得分:1)
或者只是使用jQuery和html()
代替innerHTML
...
因此...
$("#a").html("<option>Whatever</option>");
适用于所有对象的所有浏览器都很棒!
答案 2 :(得分:0)
IE不喜欢你这样做的事情。设置innerHTML
表格也是如此。
你应该学习以DOM方式做事......例如,使用createElement ("OPTION")
,然后使用appendChild()
(如果需要,首先删除带有removeChild()
的孩子)。一般来说,它比innerHTML
更好。
答案 3 :(得分:0)
使用此代码:
var optionElement = document.createElement("option");
optionElement.innerHTML = "some text here";
document.getElementById('a').appendChild(optionElement);