Используйте анонимную функцию, чтобы создать замыкание для значения i
, и убедитесь, что вы устанавливаете функцию на onmouseover
, а не результат вызова функции:
var row = document.createElement("TR");
(function (i) {
row.onmouseover = function () { hover(i) };
})(row.id);
var td1 = document.createElement("TD");
row.appendChild(td1);
tbody.appendChild(row);
<ч />
Если вы внимательно посмотрите на ваш код, то, похоже, вы на самом деле не устанавливаете атрибут id
элемента TR. Однако вы можете полностью избежать этого и использовать this
контекст внутри функции наведения:
var row = document.createElement("TR");
row.onmouseover = hover;
var td1 = document.createElement("TD");
row.appendChild(td1);
tbody.appendChild(row);
function hover() {
alert(this.rowIndex); // <-- `this` refers to the row element
}