Я добавил новый ответ, где я написал подход, который я сказал в предыдущем. Здесь изначально все значения раскрывающихся списков устанавливаются на option1, как только вы изменяете значение любого раскрывающегося списка, его значения изменяются в массиве json с использованием идентификатора раскрывающегося списка. Вы можете вносить изменения в соответствии со своим сценарием.
let table = document.querySelector("#table")
console.log(table)
var selectedOptions = {}
for (i = 0; i < 5; i++) {
let tr = document.createElement("tr");
let name = document.createElement("td");
name.innerText = "name" + i;
let address = document.createElement("td");
address.innerText = "address" + i;
let dropdown = document.createElement("td");
let select = document.createElement("select");
select.setAttribute("id", i);
select.addEventListener("change",updatevalues)
let option1 = document.createElement("option");
option1.innerText = "option1"
select.appendChild(option1)
selectedOptions[i] = option1.innerText;
option1 = document.createElement("option");
option1.innerText = "option2"
select.appendChild(option1)
option1 = document.createElement("option");
option1.innerText = "option3"
select.appendChild(option1)
option1 = document.createElement("option");
option1.innerText = "option4"
select.appendChild(option1)
dropdown.appendChild(select)
tr.appendChild(name);
tr.appendChild(address);
tr.appendChild(dropdown)
table.appendChild(tr);
}
console.log(selectedOptions)
var selectedOptions = {
0: "option1",
1: "option1",
2: "option1",
3: "option1",
4: "option1"
}
function updatevalues(event) {
console.log(event.target.id)
console.log(event.target.options[event.target.options.selectedIndex].text)
selectedOptions[event.target.id] = event.target.options[event.target.options.selectedIndex].text;
console.log(selectedOptions)
}
<div>
<table id="table"></table>
</div>
вы можете попробовать этот подход, однако есть несколько способов.
Сохраните ваши начальные выбранные значения всех ваших выпадающих в json с ключами в качестве значения счетчика, которое у вас есть в l oop, и в качестве значения, выбранного в раскрывающемся списке, например:
{
0:"value1",
1:"value2",
2:"value1",
4:"value3"
}
И добавьте событие onchange во все раскрывающиеся списки, как только вы измените значение любого раскрывающегося списка onchange событие сработает, и вы обновите json текущим значением.