DOM Tree Manipulation(document.createElement)代码重用

时间:2012-06-14 16:42:55

标签: javascript html dom domdocument 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(显然是一个select元素)。

如果我重复这样的代码,它会起作用:

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>

1 个答案:

答案 0 :(得分:1)

您可以尝试使用cloneNode

document.getElementById("pick_up_year").appendChild(node);
document.getElementById("return_year").appendChild(node.cloneNode(true));