Javascript populate select 仅适用于第一个目标

标签 javascript html

我的网站中有 2 个下拉菜单,一个适用于用户使用手机时,另一个适用于用户使用桌面时。我使用以下代码:

function populateSelect(target, min, max){
if (!target){
    return false;
}
else {
    var min = min || 0,
        max = max || min + 100;

    select = document.getElementById(target);

    for (var i = min; i<=max; i++){
        var opt = document.createElement('option');
        opt.value = i;
        opt.innerHTML = i;
        select.appendChild(opt);
    }
  }
}

populateSelect('howMany6');

两个下拉菜单共享相同的 ID:

<select class="form-control" id="howMany6" name="mituKeyd6" onChange="paljuKokku()"></select>

但是javascript只向dropdwon的移动版本添加选项,因为移动代码在HTML中位于桌面代码之前。我如何制作 javascript 代码来为两个下拉菜单添加选项?

最佳答案

不要重复 ID,保持唯一。相反,使用类来引用元素组。

在您的情况下,您需要循环遍历元素集合并分别填充每个元素。

function populateSelect(target, min, max) {
    if (!target) {
        return false;
    } 
    else {
        var min = min || 0,
            max = max || min + 100,
            select = document.querySelectorAll(target);

        for (var j = 0; j < select.length; j++) {
            for (var i = min; i <= max; i++) {
                var opt = document.createElement('option');
                opt.value = i;
                opt.innerHTML = i;
                select[j].appendChild(opt);
            }
        } 
    }
}

populateSelect('.howMany6');
<select class="form-control howMany6" name="mituKeyd6" onChange="paljuKokku()"></select>
<select class="form-control howMany6" name="mituKeyd6" onChange="paljuKokku()"></select>

关于Javascript populate select 仅适用于第一个目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31137985/

相关文章:

javascript - 使用 Google 的 API 通过 React 创建 YouTube 播放列表

javascript - 动态添加li和div到html页面

html - 流体布局中的页脚实现

html - 如何让一个段落不在一行中显示

javascript - 将 HTML 中的文本表单值输入到 Javascript 函数中

javascript - 将选择器限制为特定的 anchor 标记

javascript - 嵌入式 Youtube iFrame 全屏按钮不起作用

html - 如何在 HTML 中制作流畅的堆叠列布局?

c# - 绑定(bind)到列表 ASP.NET MVC 动态 jQuery 索引

javascript - “接受”属性 - 避免文件类型?