我制作了一个脚本,当你按下一个按钮(accessories
)时,选择(mylist
)会填充一个数组(accessoryData
),当你点击另一个按钮时( weapons
)另一个数组(weaponData
)填充选择。但是,在代码的当前状态下,第二次按下按钮不会重新填充选择。这有什么不对?
此外,如果有更有效的方法,这可能会有所帮助。
function runList(form, test) {
var html = "";
var x;
dataType(test);
while (x < dataType.length) {
html += "<option>" + dataType[x];
x++;
}
document.getElementById("mylist").innerHTML = html;
}
答案 0 :(得分:1)
我相信您正在尝试制作<select>
元素,即下拉菜单,但正确的标记是:
<select id="myList">
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option value="n">Option n</option>
</select>
您忘记使用<option>
属性关闭innerHTML
代码。
使用原生的 JS 方法:
//create the select element
var select = document.create('select');
//or use getElementById if it's already there
//Assuming your datatype is an Array of string
var opt;
for(var i=0; i<datatype.length; i++){
//create the option element
opt = document.create('option');
opt.textContent = datatype[i]; //innerText works too
//set the value attribute
opt.setAttribute('value',i+1); //+1 or else it would start from 0
//add the option to the select element
select.appendChild(opt);
//conversely use removeChild to remove
}
//at last add it to the DOM if you didn't fetch it from the DOM.