如何将JavaScript应用于多个ID?

时间:2016-11-20 22:05:46

标签: javascript html

我有两个标识为validKeys1validKeys2的下拉菜单,我正在尝试使用下面的javascript代码填充数组中的下拉菜单,但它只会填充{{1 }}。如何在多个ID上使用相同的javascript?

validKeys2

4 个答案:

答案 0 :(得分:2)

appendChild()获取传递的元素,移动到父元素中。意思是如果它已经在一个元素内部,则将其从那里移除并放入另一个元素中。

您可以制作一个全新的元素,也可以使用cloneNode()添加到第二个选择

validKeys1.appendChild(el);
validKeys2.appendChild(el.cloneNode(true));

答案 1 :(得分:1)

您可以使用常规class cloneNode 每次追加时都会复制节点el

var validKeys = document.getElementsByClassName("validKeys");

for(var i = 0; i < validCoursesKeys.length; i++) {
    var opt = validCoursesKeys[i];
    var el = document.createElement("option");
    el.textContent = opt;
    el.value = opt;

    for(var j = 0; j < validKeys.length; j++) {
         validKeys[j].appendChild(el.cloneNode(true));
    }
}

希望这有帮助。

&#13;
&#13;
var validCoursesKeys = ['opt 1','opt 2','opt 3','opt 4']
var validKeys = document.getElementsByClassName("validKeys");

for(var i = 0; i < validCoursesKeys.length; i++) {
  var opt = validCoursesKeys[i];
  var el = document.createElement("option");
  
  el.textContent = opt;
  el.value = opt;

  for(var j = 0; j < validKeys.length; j++) {
    validKeys[j].appendChild(el.cloneNode(true));
  }
}
&#13;
<select class="validKeys"></select>
<select class="validKeys"></select>
<select class="validKeys"></select>
&#13;
&#13;
&#13;

答案 2 :(得分:1)

您的代码实际上是将option元素附加到validKeys1,然后将其父元素更改为validKeys2。这应该按照您的预期工作。

var validKeys1 = document.getElementById("validKeys1");
var validKeys2 = document.getElementById("validKeys2");

for(var i = 0; i < validCoursesKeys.length; i++) {
    var opt = validCoursesKeys[i];
    var el = document.createElement("option");
    el.textContent = opt;
    el.value = opt;
    validKeys1.appendChild(el);
    var el2 = el.cloneNode(false);
    validKeys2.appendChild(el2);
}

答案 3 :(得分:1)

这可能对数组

使用forEach方法也很有用
var validKeys1 = document.getElementById("validKeys1");
var validKeys2 = document.getElementById("validKeys2");
[validKeys1, validKeys2].forEach((ids) => {
     validCoursesKeys.forEach((courses) => {
        var opt = courses
        var el = document.createElement('option');
        el.textConent = opt;
        el.value = opt;
        ids.appendChild(el)
   })
})