Można powiązać do stołu, ale zostawi otwartą możliwość, że możesz kliknąć w odstępów między komórkami (który nie ma wiersza lub indeks komórkowy). Postanowiłem w poniższym przykładzie, że chciałbym związać się z komórkami, a tym samym zapewnić, że zawsze będę miał indeks wiersza i komórki.
var tbl = document.getElementsByTagName("table")[0];
var cls = tbl.getElementsByTagName("td");
function alertRowCell(e){
var cell = e.target || window.event.srcElement;
alert(cell.cellIndex + ' : ' + cell.parentNode.rowIndex);
}
for (var i = 0; i < cls.length; i++) {
if (cls[i].addEventListener) {
cls[i].addEventListener("click", alertRowCell, false);
} else if (cls[i].attachEvent) {
cls[i].attachEvent("onclick", alertRowCell);
}
}
Demo: http://jsbin.com/isedel/2/edit#javascript,html
Przypuszczam można bezpiecznie wiązać z samym stole też, i przeprowadzić kontrolę w stosunku do elementu źródłowego, aby zobaczyć, czy to komórka czy nie:
var tbl = document.getElementsByTagName("table")[0];
function alertRowCell (e) {
var cell = e.target || window.event.srcElement;
if (cell.cellIndex >= 0)
alert(cell.cellIndex + ' : ' + cell.parentNode.rowIndex);
}
if (tbl.addEventListener) {
tbl.addEventListener("click", alertRowCell, false);
} else if (tbl.attachEvent) {
tbl.attachEvent("onclick", alertRowCell);
}
Demo: http://jsbin.com/isedel/5/edit
możliwe duplikat [JavaScript: Get komórkę lokalizacji] (http://stackoverflow.com/questions/4998953/javascript-get-cell-location) - proszę szukać przed zadajesz nowe pytanie. –
@Felix, szukałem, a żaden z napisów, których użyłem, nie pojawił się z tym pytaniem. Powinno to działać nieco lepiej dla osób korzystających z wyszukiwania później, ponieważ używa bardziej popularnych terminów. –
Na podstawie tego, co opublikował Jonathan Sampson, użyłem tego. http://jsbin.com/iqavad/edit#javascript,html –