gpt4 book ai didi

javascript - 将相同的元素附加到不同的元素

转载 作者:行者123 更新时间:2023-12-04 00:50:53 25 4
gpt4 key购买 nike

我有两个空的选择字段,我想对某个数组进行一次迭代,在每次迭代中创建一个选项元素,并将其附加到两个选择字段。问题是只有最后一个元素获得选项,第一个保持为空:

HTML

<select class="form-control" id="typeCol">
</select>
<br>
<select class="form-control" id="diffCol">
</select>

JavaScript

let typeCol = document.getElementById('typeCol');
let diffCol = document.getElementById('diffCol');
for (let i in cols) {
let opt = document.createElement('option');
opt.value = i;
opt.innerHTML = cols[i];
typeCol.appendChild(opt);
diffCol.appendChild(opt);
}

添加另一个 for 循环并从那里追加到第二个 select 似乎可行,但仍然 - 发生了什么?

最佳答案

一个元素只能在一个父元素中。如果您在已经有父元素的元素上使用 appendChild,它会从旧父元素移动到新元素。

您可以使用 cloneNode改为创建元素的克隆:

diffCol.appendChild(opt.cloneNode(true));

例子:

let typeCol = document.getElementById('typeCol');
let diffCol = document.getElementById('diffCol');
let cols = ["one", "two", "three"];
for (let i in cols) {
let opt = document.createElement('option');
opt.value = i;
opt.innerHTML = cols[i];
typeCol.appendChild(opt);
diffCol.appendChild(opt.cloneNode(true));
}
<select class="form-control" id="typeCol">
</select>
<br>
<select class="form-control" id="diffCol">
</select>

关于javascript - 将相同的元素附加到不同的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42297986/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com