使用javascript循环选择选项

Kev*_*ngo 1 javascript for-loop

这是我的代码:

<!doctype html>

<html>
<head>
    <meta charset="utf-8">
    <title>Date Picker</title>
</head>
<body>
<p>Click the button to loop through a block of code five times.</p>
<button onclick="myFunction()">Try it</button>
<select id="demo">
</select>
<p id="demo"></p>
<script>
function myFunction()
{
    var i;
    for (i=1;i<=5;i++){
      document.getElementById("demo").innerHTML="<option value="+i+">"+i+"</option>";
    }
}
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我想要的是当我按下按钮下拉框时会生成如下选项:

<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
Run Code Online (Sandbox Code Playgroud)

但我只得到这个代码

<option value="5">5</option>
Run Code Online (Sandbox Code Playgroud)

它只显示选项上的5.请帮忙..谢谢

Koo*_*Inc 8

您在每次迭代中都会覆盖'demo'的内容.最好使用DOM方法向选择添加选项:

function myFunction(selector)
{
    var i;
    for (i=1;i<=5;i++){
      selector.options[i-1] = new Option(i,i);
    }
}
//usage:
myFunction(document.getElementById("demo"));
Run Code Online (Sandbox Code Playgroud)

顺便说一句:检查你的HTML.该id元素应该是唯一的.使用您的HTML,您的脚本如何知道哪个元素意味着document.getElementById("demo")什么?


Pra*_*ana 6

添加要选择的元素将适合您

var select = document.getElementById("demo");  

var i=0;
 for(i=1;i<=5;i++){  
     select.options[select.options.length] = new Option(i,i);  

} 
Run Code Online (Sandbox Code Playgroud)