2014-09-12 89 views
0

现在,我尝试使用JavaScript来动态地添加一些<select>元素添加到HTML页面“选择”以HTML选项;具体来说,<select>元素将让人们选择时间。我大部分的方式:动态添加通过DOM

var newDiv = document.createElement("div"); 

    var hrSelect = document.createElement("select"); 
    hrSelect.name = "div_hr"; 

    for (i = 0; i < 24; i++) { 
    var hrOption = document.createElement("option"); 
    var hrStr = String(i); 
    if (i < 10) { 
     hrStr = "0" + hrStr; 
    } 
    hrOption.value = hrStr; 
    hrOption.appendChild(document.createTextNode(hrStr)); 
    hrSelect.appendChild(hrOption); 
    } 

    newDiv.appendChild(hrSelect); 

这本身工作正常。所以这里是这样的:我想做出这些选项selected之一,并默认显示,我不知道如何做到这一点。例如:

if (i == 12) { 
     hrOption.selected = true; 
    } 

但这不适用于我。我无法找到如何做这项工作; Google搜索没有提供任何有用的选项。任何人都可以引导我回答问题吗? (。对于那些你好奇,我想使selected选项默认为当前时间,我已经知道如何通过PHP获取时间和echo它变成我的JavaScript)

编辑:因为它事实证明,我的预期解决方案是正确的。我不确定为什么当我测试它时它不适用于我。投票结束。

+1

也就是说,实际上,你怎么做:设置 “中选择” 属性'TRUE'。 – Pointy 2014-09-12 22:04:05

+0

您也可以将'hrSelect.selectedIndex'设置为您想要选择的选项的索引。 – Barmar 2014-09-12 22:04:36

+0

@Pointy我发誓它没有工作,当我第一次尝试它。由于某种原因,它现在可以工作,所以我想这要注意:|谢谢! – TheSoundDefense 2014-09-12 22:05:28

回答

2

使用selectedIndex属性:

hrSelect.selectedIndex = 12; 
+0

这将工作,但[所以将在OP代码(http://jsfiddle.net/dc6q82vm/)。 – Pointy 2014-09-12 22:06:16

+2

是的。但是这是一个声明,每次循环都必须执行。所以这看起来好一点。 – Barmar 2014-09-12 22:06:54