У меня есть таблица HTML. Первая строка содержит флажок. Существует метод javascript, связанный с изменением флажка. Если флажок установлен, код добавляет несколько строк в таблицу и заполняет их. Если флажок снят, код удаляет все строки, кроме первого (тот, который содержит флажок).Удалите все дочерние узлы, но первый
Первая часть кода работает нормально: строки правильно добавлены.
У меня проблема со второй частью. Вот мой код:
if (checkboxValue) {
//Add first row
var tr1 = document.createElement("tr");
var td1_1 = document.createElement("td");
....
tr1.appendChild(td1_1);
var td1_2 = document.createElement("td");
...
tr1.appendChild(td1_2);
table.appendChild(tr1);
//Add second row
var tr2 = document.createElement("tr");
var td2_1 = document.createElement("td");
...
tr2.appendChild(td2_1);
var td2_2 = document.createElement("td");
...
tr2.appendChild(td2_2);
table.appendChild(tr2);
} else {
//Remove all rows but the first
var rows = table.getElementsByTagName("tr");
var nbrRows = rows.length;
if (nbrRows > 1) {
for (var i = 1; i < nbrRows; i++) {
var row = rows[i];
row.parentNode.removeChild(row);
}
}
}
вопрос всегда приходят из rows[2]
быть неопределенным. Я не имею понятия почему!
Если, вместо того чтобы использовать removeChild
, я пишу row.innerHTML = ""
, у меня есть визуальный эффект, я ищу (все строки ушли), но это некрасиво, так как теперь таблица содержит несколько пустых строк (их число возрастало каждый раз я проверяю/снимите флажок).
Подсказка? Спасибо вам большое за ваше время!
Ну, 'getElementsByTagNames' ошибка синтаксиса, он должен быть [' getElementsByTagName'] (https: // разработчика .mozilla.org/en-US/docs/Web/API/Element/getElementsByTagName)? – adeneo
Да, действительно. Я правильно написал его в своем коде, но скопировал его слишком быстро. Благодарю. Я сделал исправление в оригинальном посте. – nouklea