2012-06-14 2 views
1

Так что, в основном, я столкнулся с этой проблемой достаточно долго, что это серьезно расстраивает меня.Повторное использование кода DOM Tree (document.createElement)

То, что я хотел бы сделать, это иметь такой код:

node = document.createElement("option"); 
textbox = document.createTextNode(currentday.getFullYear() + i); 
node.value = currentday.getFullYear() + i; 
node.appendChild(textbox); 
document.getElementById("pick_up_year").appendChild(node); 
document.getElementById("return_year").appendChild(node); 

Но этот код только добавляет узлы return_year (отборный элемент, очевидно).

Это действительно работает, если я повторить такой код:

node = document.createElement("option"); 
textbox = document.createTextNode(currentday.getFullYear() + i); 
node.value = currentday.getFullYear() + i; 
node.appendChild(textbox); 
document.getElementById("pick_up_year").appendChild(node); 
node = document.createElement("option"); 
textbox = document.createTextNode(currentday.getFullYear() + i); 
node.value = currentday.getFullYear() + i; 
node.appendChild(textbox); 
document.getElementById("return_year").appendChild(node); 

Но это вряд ли элегантный, это? Почему я вынужден повторно использовать код, и есть ли простой способ обойти это?

HTML, в основном это:

<select id="pick_up_days" name="pick_up_day"> 
    <option value="nojs">Please enable JavaScript</option> 
</select> 
<select id="pick_up_year" name="pick_up_year"> 
    <option value="nojs">Please enable JavaScript</option> 
</select> 
+0

узел может иметь только один из родителей. При первом добавлении «node» вставляется в дерево документа в поддереве указанного узла «