【发布时间】:2018-12-22 05:31:25
【问题描述】:
我正在尝试在<select> 菜单中动态填充<option> 标签,但是我在这样做时遇到了麻烦。我想要这样做的方式是在一个 for 循环中,其中 JS 循环遍历有许多选项,并将选项附加到 select 标记。
不起作用的代码位(我认为)是这一位:(所有相关代码都在下面)
for (var i = 0; i < count; i++) {
//how can I do this part?
item.appendChild((option + i + 1));
}
我希望它循环显示,例如,如果 count = 2 附加选项。
所以当i = 0 时它会做:item.appendChild((option1)); 而当i = 1 它会做item.appendChild(option2); 到我的<select id='_second'> 菜单
我不确定发生了什么,如果有人能给我一个方向感,那将不胜感激。
//Javascript
myFunction = () => {
//get value of selected <option> in a separate <select> drop down
var type = document.getElementById('_first').value;
//get the second <select>
var item = document.getElementById('_second');
//set count variable to know how many <options> there should be in second <select> drop down
var count;
//assess value
switch (type) {
case '1': //First case
var option1 = document.createElement('option');
option1.text = 'SomeText1';
count = 1;
break;
case '2': //Second case
var option1 = document.createElement('option');
option1.text = 'SomeText2';
var option2 = document.createElement('option');
option2.text = 'SomeText3';
count = 2;
break;
case '3': //Third case
var option1 = document.createElement('option');
option1.text = 'SomeText4';
var option2 = document.createElement('option');
option2.text = 'SomeText5';
var option3 = document.createElement('option');
option3.text = 'SomeText6';
count = 3;
break;
}
//populate select menu
for (var i = 0; i < count; i++) {
//how can I do this part?
item.appendChild((option + i + 1));
}
}
//HTML
<p>Select Something:</p>
<div style="width:50%;">
First Menu: <br>
<select id='_first' required>
<option value='0'>Select Type:</option>
<option value='1'>First Option</option>
<option value='2'>Second Option</option>
<option value='3'>Third Option</option>
</select>
</div>
<div style="width:50%;">
Dynamic Second Menu: <br>
<select id='_second'>
<!-- Doesn't populate! &sadface; -->
</select>
</div>
【问题讨论】:
-
您不能将一个变量的值附加到另一个变量以获取名称,然后再附加另一个变量的值。尝试改用array。
-
eval(),我的答案如下。它展示了如何做到这一点,只需使用 eval() 和 parseInt() 逻辑将其添加到您自己的代码 Lego 中。祝你好运:)
标签: javascript html ajax dom