Wie würde ich in der folgenden Tabelle den entsprechenden Tabellenkopf für jedes td-Element erhalten?
<table>
<thead>
<tr>
<th id="name">Name</th>
<th id="address">Address</th>
</tr>
</thead>
<tbody>
<tr>
<td>Bob</td>
<td>1 High Street</td>
</tr>
</tbody>
</table>
td
Wie kann ich das entsprechende th
Element finden , da mir derzeit bereits eines der Elemente zur Verfügung steht ?
var $td = IveGotThisCovered();
var $th = GetTableHeader($td);
jquery
jquery-selectors
djdd87
quelle
quelle
Antworten:
Oder ein bisschen vereinfacht
quelle
.parent('table')
.closest('table')
Es ist am besten, eine ID zu verwenden, um auf die Tabelle zu verweisen, wenn es mehr als eine gibt.
quelle
Lösung, die handhabt
colspan
Ich habe eine Lösung, die darauf basiert, den linken Rand des
td
mit dem linken Rand des entsprechenden zu vergleichenth
. Es sollte beliebig komplexe Colspans verarbeiten.Ich habe den Testfall geändert, um zu zeigen, dass Beliebig
colspan
korrekt behandelt wird.Live-Demo
JS
CSS
HTML
quelle
colspan
in den Überschriften und Zeilen zu verwenden, und es hat immer noch funktioniert. Ich würde mich freuen, von allen Fällen zu hören, die damit nicht funktionieren.Sie können dies mithilfe des Index von td tun:
quelle
.index()
Null und aufnth-child
Eins basiert. Das Ergebnis wäre also um eins falsch. : o)Reine JavaScript-Lösung:
quelle
Finden Sie eine Übereinstimmung
th
für atd
unter Berücksichtigung voncolspan
Indexproblemen.quelle
Das ist einfach, wenn Sie sie nach Index referenzieren. Wenn Sie die erste Spalte ausblenden möchten, würden Sie:
Code kopieren
Der Grund, warum ich zuerst alle Tabellenzeilen und dann sowohl td als auch th ausgewählt habe, die das n-te Kind waren, ist, dass wir die Tabelle und alle Tabellenzeilen nicht zweimal auswählen müssen. Dies verbessert die Geschwindigkeit der Skriptausführung. Denken Sie daran,
nth-child()
wird1
basierend, nicht0
.quelle