2009-11-21 8 views
12

Ich bin auf der Suche nach einer guten Möglichkeit, Zellen X-Y-Position in einer Tabelle zu bekommen. (Verwechsle es nicht mit CSS-Position, ich suche nach X- und Y-Koordinaten im kartesischen Koordinatensystem).Wie bekomme ich Zellen() x und y Koordinaten in der Tabelle mit jQuery?

Wie wir wissen, können wir bestimmte Zelle in einer Tabelle mit ex: $('#grid')[0].rows[5].cells[7] erhalten.

Aber was ist, wenn ich den Wert 5x7 erhalten will, wenn ich auf bestimmte Zelle klicken, das heißt:

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

ich denke, ist der einfachste Weg innerHTML-, ID oder CSS-Klasse zu jeder Zelle hinzuzufügen (<td class="p-5x7"> usw.) wenn man eine Tabelle im Backend erstellt, dann analysiert und zurückgibt, aber gibt es irgendeine Möglichkeit, diese Koordinaten rein auf DOM zu bekommen?

Antwort

36

DOM Level 2 HTML cellIndex:

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

Ähm ... ja ... löschte ich meine Antwort, weil diese Antwort als meine lächerlich besser ist. :-) 1+ – a432511

+0

vielen dank! klingt so einfach jetzt – rochal

+0

Habe gerade etwas neues gelernt ... danke @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>

Verwandte Themen