我有一些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这样的库可以用更少的代码帮助完成的事情。

10-05 20:47
查看更多