Как правильно изменить атрибут "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" в соответствии с указанным форматом.
По подсказке <a href="https://qna.habr.com/user/Ankhena" rel="nofollow">Ankhena</a> все заработало. <br/> В итоге: <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].getElementsByTagName("input");
// соответственно доступ к input`ам
element1[0].setAttribute("name", "idnaimSOD-" + i); // первый, а далее по надобности...
}
}</code></pre> <br/> <b>Вопрос закрыт. Благодарю всех !!!</b>