用DOM修改select

时间:2009-08-11 22:48:20

标签: javascript internet-explorer dom

我在google上找到了一些结果,但没什么令人满意的,所以我希望有人知道。

似乎使用innerHTML填充select元素在IE

中不起作用

我已经设置了一个除了那个之外什么都不做的文件,除了IE之外它还适用于所有内容,这里的代码是有人关心的:

<html>
<head></head>

<body onload="populate();">
<script type="text/javascript">
  function populate()
  {
    document.getElementById("test").innerHTML = '<option id="a">works</option>';
  }
</script>

<select id="test"></select>

</body>
</html>

任何人都知道解决方案吗?我不想删除所有内容,然后手动使用appendChild,因为我从不同的函数返回html,这似乎很荒谬,这不起作用。

任何想法都会受到赞赏。

2 个答案:

答案 0 :(得分:3)

编辑:这个答案是在OP说他不想使用appendChild()之前写的。我会保留这个答案以供参考。


这篇文章将使用POJSF。 (普通的旧JavaScript框架,每个框架都基于框架!)
对于那些没有得到它的人来说,这是一次糟糕的尝试幽默...

您可以使用<option>

创建document.createElement(),而不是使用innerHTML
var newOption = document.createElement('option');
newOption.label = 'works';

newOption.appendChild(document.createTextNode(newOption.label));

newOption.id = 'a';

document.getElementById('mySelect').appendChild(newOption);

如果您要删除<option>中的所有<select>

var selectEl = document.getElementById('mySelect');
for(var i = selectEl.children.length - 1; i >= 0; i--) {
    selectEl.removeChild(selectEl.children[i]);
}

答案 1 :(得分:1)