重复appendChild x次

时间:2014-04-08 17:30:19

标签: javascript

我将这个简单的代码包装在一个函数中:

slots = timeset / 2;
var oneslot = document.createElement("option");
document.getElementById('presentingslots').appendChild('oneslot');

变量槽明显变化。我想追加孩子的时间x次x =时隙 我该怎么做呢?

4 个答案:

答案 0 :(得分:2)

试试这个:

slots = timeset / 2;
for (var i = 0; i < slots; i += 1) {
  var oneslot = document.createElement("option");
  document.getElementById('presentingslots').appendChild('oneslot');
}

答案 1 :(得分:2)

您可以使用循环(for,while)来执行此操作。

slots = timeset / 2;
var presentingslots = document.getElementById('presentingslots');
for (var i = 0; i < slots; i++) {
  var oneslot = document.createElement('option'); 
  presentingslots.appendChild(oneslot);
}

答案 2 :(得分:2)

如果slots很小,您可以在循环中附加每个元素:

slots = timeset / 2;
for (var i = 0; i < slots; i++) {
    var oneslot = document.createElement('option');
    document.getElementById('presentingslots').appendChild(oneslot);
}

如果slots可能很大,那么您需要使用DocumentFragment

slots = timeset / 2;
var df = document.createDocumentFragment();
for (var i = 0; i < slots; i++) {
    var oneslot = document.createElement('option');
    df.appendChild(oneslot);
}
document.getElementById('presentingslots').appendChild(df);

由于DOM只更新一次,因此效率会更高。

答案 3 :(得分:1)

一个简单的for循环可以解决问题。您可以设置值以及显示的文本。

var slots = timeset / 2,
    el = document.getElementById('presentingslots');
for (var i = 0; i < slots; i++) {
    var oneslot = document.createElement('option');
    oneslot.text = i;
    oneslot.value = 'set my value if you want';
    el.appendChild(oneslot);
}

I made a simple jsFiddle to show.