Как правильно изменить атрибут "name" элемента input в первом столбце таблицы после динамического добавления или удаления строк? Мой текущий код, который не работает, приведен ниже. Что я делаю не так? Код выглядит следующим образом: <br/><pre><code class="javascript">var table = document.getElementById("sod-sotr-table"); var rowCount = table.rows.length; if(rowCount > 1){ for (let i = 1; i < rowCount-1; i++) { var element1 = table.rows[i].getElementById("idinputsodsotr1"); element1.setAttribute("name", "idnaimSOD-" + i); } }</code></pre> Ваша помощь будет крайне полезна, так как я только начинаю изучать JavaScript. Спасибо!
Ошибка в вашем коде заключается в том, что метод `getElementById` не является методом элемента `tr` (строки таблицы), поэтому его нельзя вызывать непосредственно от `table.rows[i]`. Для того чтобы изменить атрибут "name" элемента `input` в первом столбце таблицы после динамического добавления или удаления строк, вам нужно изменить ваш код следующим образом: ```javascript var table = document.getElementById("sod-sotr-table"); var rowCount = table.rows.length; if(rowCount > 1){ for (let i = 1; i < rowCount; i++) { var element1 = table.rows[i].cells[0].getElementsByTagName("input")[0]; element1.setAttribute("name", "idnaimSOD-" + i); } } ``` Этот код будет искать все элементы `input` в первом столбце каждой строки таблицы и изменять их атрибут "name" в соответствии с указанным форматом.
По подсказке Ankhena все заработало.
В итоге:
var table = document.getElementById("sod-sotr-table"); var rowCount = table.rows.length; if(rowCount > 1){ for (let i = 1; i < rowCount-1; i++) { var element1 = table.rows[i].getElementsByTagName("input"); // соответственно доступ к input`ам element1[0].setAttribute("name", "idnaimSOD-" + i); // первый, а далее по надобности... } }
Вопрос закрыт. Благодарю всех !!!