我有 2 个下拉列表,其中包含相同的项目。
当我创建单个元素并尝试将其分配给两个不同的父元素时,此代码不起作用。
function addAssignee() {
let dropDown1 = document.getElementById("bugOwner");
let dropDown2 = document.getElementById("bugAssignee");
document.getElementById("bugOwner").options.length = 0;
document.getElementById("bugAssignee").options.length = 0;
let localData = localStorage.getItem("users");
let jsonObj = JSON.parse(localData);
for (i in jsonObj.records) {
let option = document.createElement("OPTION");
option.innerHTML = jsonObj.records[i].name;
option.value = jsonObj.records[i].unique;
dropDown1.options.add(option);
dropDown2.options.add(option);
}
}
输出:
这段代码正在工作,当我创建两个元素时,为它们分配值并将它们添加到父元素。
function addAssignee() {
let dropDown1 = document.getElementById("bugOwner");
let dropDown2 = document.getElementById("bugAssignee");
document.getElementById("bugOwner").options.length = 0;
document.getElementById("bugAssignee").options.length = 0;
let localData = localStorage.getItem("users");
let jsonObj = JSON.parse(localData);
for (i in jsonObj.records) {
let option1 = document.createElement("OPTION");
let option2 = document.createElement("OPTION");
option1.innerHTML = jsonObj.records[i].name;
option1.value = jsonObj.records[i].unique;
option2.innerHTML = jsonObj.records[i].name;
option2.value = jsonObj.records[i].unique;
dropDown1.options.add(option1);
dropDown2.options.add(option2);
}
}
输出:
最佳答案
您始终可以执行 let option2 = option1.clone()
或在附加时克隆:dropDown2.options.add(option.clone())
关于javascript - 我可以在不同的元素上添加相同的 document.createElement 元素吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54645146/