DOM中的许多对象都具有更改的状态,但有些似乎没有。 假设您有两个选择,每个选择A,B,C。每个选择都有一个当前值,但如果A,B,C的值永远不会改变,它们可以共享吗?例如:
var opt = [
document.createElement("option"),
document.createElement("option"),
document.createElement("option")
];
opt[0].value = 'a';
opt[1].value = 'b';
opt[2].value = 'c';
var select1 = document.createElement("select");
var select2 = document.createElement("select");
for (var i = 0; i < opt.length; i++) {
select1.appendChild(opt[i]);
select2.appendChild(opt[i]);
}
答案 0 :(得分:3)
像pointy指出的那样,将dom元素附加到新父元素会将其从旧元素中删除。但是,您可以在将选项附加到第二个选择之前克隆您的选项:
var opt = [
document.createElement("option"),
document.createElement("option"),
document.createElement("option")
];
opt[0].text = 'a';
opt[1].text = 'b';
opt[2].text = 'c';
var select1 = document.createElement("select");
var select2 = document.createElement("select");
for (var i = 0; i < opt.length; i++) {
select1.appendChild(opt[i]);
select2.appendChild(opt[i].cloneNode(true));
}
document.getElementsByTagName("body")[0].appendChild(select1);
document.getElementsByTagName("body")[0].appendChild(select2);