2009-11-21 14 views
12

Estoy buscando una buena manera de obtener la posición X-Y de las celdas en una tabla. (No lo confundas con la posición css, estoy buscando coordenadas X e Y en el sistema de coordenadas cartesianas).Cómo obtener celdas (<td>) coordenada xey en la tabla usando jQuery?

Como sabemos, podemos obtener una celda particular en una tabla usando ex: $('#grid')[0].rows[5].cells[7].

Pero, ¿y si quiero obtener el valor 5x7 cuando hago clic en particular, celular, es decir:

$('#grid td').click(function(){ 
    alert("My position in table is: " + myPosition.X + "x" + myPosition.Y); 
}); 

supongo, la forma más fácil es añadir innerHTML, ID o una clase de CSS para cada célula (<td class="p-5x7"> etc.) cuando se crea una tabla en el back-end, luego se analiza y se devuelve al hacer clic, pero ¿hay alguna forma de obtener estas coordenadas exclusivamente en DOM?

Respuesta

36

DOM Nivel 2 HTML cellIndex:

alert('My position in table is: '+this.cellIndex+'x'+this.parentNode.rowIndex); 
+4

Um ... sí ... He eliminado mi respuesta porque esta respuesta es ridículamente mejor que la mía. :-) 1+ – a432511

+0

muchas gracias! suena tan simple ahora – rochal

+0

Acabo de aprender algo nuevo ... gracias @bobince –

0

window.onload = function() { 
 
    document.getElementsByTagName('table')[0].addEventListener('click', function(e) { 
 
    alert("My position in table is: " + e.target.parentElement.rowIndex + "x " + e.target.cellIndex + "y"); 
 
    }, false); 
 
}
tr, td { 
 
    padding: 0.6rem; 
 
    border: 1px solid black 
 
} 
 

 
table:hover { 
 
    cursor: pointer; 
 
}
<table id="grid"> 
 
    <tr> 
 
    <td>0, 0</td> 
 
    <td>0, 1</td> 
 
    <td>0, 2</td> 
 
    </tr> 
 
    <tr> 
 
    <td>1, 0</td> 
 
    <td>1, 1</td> 
 
    <td>1, 2</td> 
 
    </tr> 
 
</table>

Cuestiones relacionadas