2016-07-08 25 views
0

Ich habe eine HTML-Tabelle mit 3 Spalten und 7 Zeilen. Wenn ich auf eine Zelle klicke, wird ihr bg in rot geändert. Ich möchte sicherstellen, dass nur eine Zelle aus jeder Zeile ausgewählt ist. Wenn ich also auf eine Zelle von row1 klicke, für die bereits eine Zelle ausgewählt wurde, möchte ich, dass die vorherige Zelle deaktiviert und die neue Zelle ausgewählt wird. Ich möchte wissen, wie ich herausfinden kann, dass Zellen aus derselben Reihe sind.Wie kann ich herausfinden, dass Zellen der gleichen Zeile sind

+0

Geben Sie den Code ein, den Sie bereits ausprobiert haben, damit wir helfen können. –

+0

@pracheese Sie können überprüfen "Elternelement" -Eigenschaft. – Arnial

+0

'cell.parentNode.cells' gibt eine Liste aller Zellen in derselben Zeile zurück. – Barmar

Antwort

0

einer Tabellenzelle gegeben, dessen parentNode wird die Zeile enthalten sein, und die Tabellenzeilen haben eine cells Eigenschaft, die eine Sammlung aller Zellen enthält. So können Sie diese Sammlung durchlaufen.

function selectCell(cell) { 
    var siblings = cell.parentNode.cells; 
    for (var i = 0; i < siblings.length; i++) { 
     if (i != cell.cellIndex) { 
      siblings[i].style.backgroundColor = normalBGColor; 
     } 
    } 
    cell.style.backgroundColor = highlightBGColor; 
} 
+0

gibt es eine ähnliche Möglichkeit, die Spalte (ID oder eine andere Kennung) zu finden, zu der die Zelle gehört. –

+0

Ist 'cell.cellIndex' was Sie wollen? – Barmar

+0

Ja. Danke vielmals! –

0

Wenn Sie jQuery verwenden, dies in Ihrem Click-Handler, tun:

function() { 
    $(this).closest('tr').find('td').css('backgroundColor', ''); 
    $(this).css('backgroundColor', 'red'); 
} 
0

Sie können die Zeilen durchlaufen und durchlaufen die Zelle in einem for-Schleife eingebettet. Die von John Hartsock auf dieser Stapelüberlaufseite bereitgestellte Lösung sollte es Ihnen ermöglichen, jede Zelle nach Zeile und Spalte zu qualifizieren.

How do I iterate through table rows and cells in javascript?

Verwandte Themen