我有一些javascript,可以动态生成大量的<select>
选项(<option>
)元素。我需要能够使用“onchange”事件根据另一个<select>
菜单的值在3个或4个不同的生成列表之间切换。
是否有方法可以存储多个选项列表,然后根据需要将select对象重定向到适当的列表?
现在,我必须删除所有选项并一次重新添加一个。这似乎非常浪费时间。
最佳答案
可以将不同的选项列表存储为简单数组,然后执行以下操作:
function setThisSelect(selectId, optionsArray){
var sel = document.getElementById(selectId);
sel.options.length = 0;
for (var i = 0; i < optionsArray.length; i++)
sel.options.add(optionsArray[i]);
}
下面是如何创建选项:
var optionsArr1 = [];
for (var i = 0; i < 5; i++) {
var op = document.createElement("option");
op.value = i;
op.text = i;
optionsArr1.push(op);
}
这里有一个fiddle:
但如果你想做很多,很快就会变得乏味。这可能是像jQuery这样的库可以用更少的代码帮助完成的事情。