собрать данные из динамической таблицы html в json на чистом js
нужна помощь в сборе данных из таблицы, у меня меня есть динамическая таблица которая добавляет строку из выбранного пункта в теге <select>, строка создается со следующими параметрами
function addRow(selectAnswer) {
const empTab = document.getElementById('empTable');
let rowCnt = empTab.rows.length;
let tr = empTab.insertRow(rowCnt);
for (let c = 0; c < HeaderTable.length; c++) {
let td = document.createElement('td');
td = tr.insertCell(c);
if (c == 0) {
let button = document.createElement('button');
button.textContent = "Удалить";
button.setAttribute('id', selectAnswer);
button.setAttribute("class", "clearBtn")
button.setAttribute("onclick", "addSelect(this)")
td.appendChild(button);
} else if (c == 1) {
let ele = document.createElement('span');
ele.textContent = selectAnswer
td.appendChild(ele);
} else {
let ele1 = document.createElement("input");
ele1.setAttribute("type", "number")
td.appendChild(ele1)
};
}
}
при нажатие на кнопку Расчет каждая строка должна собраться в JSON и отправиться дальше,
я собираю данные следующим образом
let btn = document.getElementById("btn").addEventListener("click", () => {
let database = []
const table = document.getElementById("empTable")
for (let i = 1; row = table.rows[i]; i++) {
database.push({ name: row.cells[1], massa: row.cells[2], W: row.cells[3], A: row.cells[4] })
}
console.log(database)
calck(database)
})
но я не могу понять как мне собрать название из span и все значения из input , а не ячейки (td) из таблицы
Ответы (1 шт):
Автор решения: frozencoast
→ Ссылка
Вот корректный код для сбора данных
let btn = document.getElementById("btn").addEventListener("click", () => {
let database = [];
const table = document.getElementById("empTable");
for (let i = 1; (row = table.rows[i]); i++) {
database.push({
name: row.cells[1].innerText, // Простой текст внутри ячейки или дочернем span
massa: row.cells[2].querySelector('input').value, // Значение input в ячейке
W: row.cells[3].querySelector('input').value, // Значение input в ячейке
A: row.cells[4].querySelector('input').value // Значение input в ячейке
});
}
console.log(database);
calck(database);
});
