Wie kann ich wählen Sie alle Elemente der Klasse „Art“ in einer Tabelle mit einer bestimmten ID?
-
01-07-2019 - |
Frage
Nehmen wir an, ich habe folgendes HTML:
<table id="foo">
<th class="sortasc">Header</th>
</table>
<table id="bar">
<th class="sortasc">Header</th>
</table>
Ich weiß, dass ich tun kann, die mit allen folgenden bekommen th Elemente, die class = "sortasc" haben
$$('th.sortasc').each()
Allerdings, die mir die th Elemente aus beide Tabelle gibt foo und Tabelle bar .
Wie kann ich sagen, es mir zu geben, nur die th-Elemente aus der Tabelle foo
Lösung
Tabelle # foo th.sortasc
Andere Tipps
Dies ist, wie Sie es mit straight-up JS tun würde:
var table = document.getElementById('tableId');
var headers = table.getElementsByTagName('th');
var headersIWant = [];
for (var i = 0; i < headers.length; i++) {
if ((' ' + headers[i].className + ' ').indexOf(' sortasc ') >= 0) {
headersIWant.push(headers[i]);
}
}
return headersIWant;
Der CSS-Selektor wäre so etwas wie '#foo th.sortasc' sein. In jQuery, die $ ( '# foo th.sortasc') werden würde.
Mit einer verschachtelten Tabelle, wie:
<table id="foo">
<th class="sortasc">Header</th>
<tr><td>
<table id="nestedFoo">
<th class="sortasc">Nested Header</th>
</table>
</td></tr>
</table>
$ ( 'Tabelle # foo th.sortasc') geben Sie alle die th, weil Sie mit einem Nachkomme Selektor . Wenn Sie nur foo des th wollen, dann sollten Sie die Kindselektor -. $ ( 'Tabelle # foo> th.sortasc')
Beachten Sie, dass das Kind Selektor ist nicht in CSS für IE6 unterstützt , obwohl JQuery noch richtig tut es von JavaScript.