Поскольку переменная id инициализируется при каждом вызове функции, все строки в итоге имеют одинаковый идентификатор (то есть 1).
Одним из способов решения этой проблемы является простое размещение объявления var id = 1;
перед началом function insert_row()
в качестве глобальной переменной.
Однако, чтобы избежать использования глобальных переменных, мы могли бы получить счетчикиз всех существующих строк таблицы и добавьте к ней 1, чтобы получить новый идентификатор следующим образом:
[<script type="text/javascript">
function insert_row(){
var firstName = document.getElementById('first_name').value;
var lastName = document.getElementById('last_name').value;
var human = "human";
var table = document.getElementById("saving_table");
// get count of the number of rows that already exist
var rowCount = table.getElementsByTagName("tr").length;
var id = rowCount + 1;
// Create an empty <tr> element and add it to the 1st position of the table:
var row = table.insertRow(id);
row.id=id;
var rowId = row.id;
// Insert new cells (<td> elements) at the 1st and 2nd position of the "new" <tr> element:
var cell1 = row.insertCell(0);
var cell2 = row.insertCell(1);
var cell3 = row.insertCell(2);
// Add some text to the new cells:
cell1.innerHTML = firstName;
cell2.innerHTML = lastName;
cell3.innerHTML = human+ rowId.toString();
id++;
}
] [1]
HTML-код останется прежним.В случае, если ваше приложение большое или направлено на то, чтобы стать большим проектом, я настоятельно рекомендую использовать второй метод вместо определения глобальной переменной.Глобальные переменные, как правило, становятся очень сложными для управления по мере увеличения размера приложения.