2009-09-12 14 views

Antwort

16

Core/index

$("td").click(function(){ 

    var column = $(this).parent().children().index(this); 
    var row = $(this).parent().parent().children().index(this.parentNode); 

    alert([column, ',', row].join('')); 
}) 
+0

Ich habe versucht, und es hat funktioniert, vielen Dank :) – milk

2

In jQuery 1.6:

$(this).prop('cellIndex') 
21

Die index Funktion ohne Parameter aufgerufen wird, die Position relativ zu den Geschwister erhalten (keine Notwendigkeit, die Hierarchie zu durchqueren).

$('td').click(function(){ 
    var $this = $(this); 
    var col = $this.index(); 
    var row = $this.closest('tr').index(); 

    alert([col,row].join(',')); 
}); 
7

Wie pro this answer, DOM Level 2 setzt cellIndex und rowIndex Eigenschaften von td und tr Elemente sind.

Hier können Sie das tun, was ziemlich lesbar ist.

$("td").click(function(){ 

    var column = this.cellIndex; 
    var row = $(this).parentNode.rowIndex; 

    alert("[" + column + ", " + row + "]"); 
}); 
+0

diesen Code wird nicht wirklich funktionieren as-is da Sie 'cellIndex' für ein jQuery-Objekt aufrufen, verwenden Sie' this.cellIndex' anstelle von '$ (this) .cellIndex', dasselbe wie beim Abrufen der Zeile –

0

$("td").click(function(e){ 
 
    alert(e.target.parentElement.rowIndex + " " + e.target.cellIndex) 
 
});
tr, td { 
 
    padding: 0.3rem; 
 
    border: 1px solid black 
 
} 
 

 
table:hover { 
 
    cursor: pointer; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table> 
 
    <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