2012-12-03 46 views
0

好的,我知道如何做到这一点 - 理论上。我在一个网页中有一个下拉列表,我想用javascript动态编辑。我的下拉列表中已创建的空,用下面的HTML:用Javascript动态编辑下拉列表 - 不工作

<select id="my_dropdown"> 
</select> 

,然后这段JavaScript代码(head部分运行)应该有一个选项填写了:

my_drop = document.getElementById("my_dropdown"); 
my_drop.options[0] = new Option("Name", "value"); 

我认为我正在做所有的事情,但在这一点上,即使剥离了这些东西,这些代码仍然无法使用,无论是使用Chromium还是Firefox。我不知道接下来要尝试什么。建议?

回答

1

如果您是在处理任何onload处理程序的头部,那么DOM尚未准备好。

要么将​​您的javascript移动到HTML中的元素之后,要么将其包含在onload函数中。

如/

<body onload="doMyStuff()"> 

,并在头

function doMyStuff(){ 
    // code here to add item to dropdown 
} 
+0

非常感谢您!有用。有趣的是,我只是在测试,但在最终版本中,编辑功能将被绑定到另一个事件,这些事件在身体加载后将发生(因为它取决于用户输入)。换句话说,如果我立即尝试,问题甚至不会存在... – Okarin

0

没有什么是你的代码错误......我觉得你的DOM还没有准备好那么试试这个...

对您的HTML标记

<body onload="myFunction()"> 

并添加到您的脚本

function myFunction(){ 
    my_drop = document.getElementById("my_dropdown"); 
    my_drop.options[0] = new Option("Name", "value"); 
} 
+0

如上所述。已经解决了。不管怎么说,还是要谢谢你! – Okarin