0

我编写了一个脚本,当你按下一个按钮(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;
}
4

1 回答 1

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.
于 2012-06-13T10:37:24.147 回答