jQuery: Wie zähle ich Tabellenspalten?
Verwendung von jQuery, wie würden Sie herausfinden, wie viele Spalten in einer Tabelle?
<script>
alert($('table').columnCount());
</script>
<table>
<tr>
<td>spans one column</td>
<td colspan="2">spans two columns</td>
<td colspan="3">spans three columns</td>
<tr>
</table>
Die Gesamtzahl der Spalten in diesem Beispiel ist 6. Wie könnte ich feststellen, diese mithilfe von jQuery?
Kommentar zu dem Problem
Anbringen eines id zu der Zeile, die Schleife durch
HTMLTableRowElement.Zellen
für diese Zeile, und addieren Sie die colSpan
DOM-Eigenschaft für jede Zelle würde wahrscheinlich den job zu erledigen. Allerdings, das ist ohne jQuery. Wie zählst du sechs Spalten in deinem Beispiel?
Wenn Sie sagen,
6
, meinst du ein td
von colspan="2"
würde zählen als zwei? Recht, also, wenn Sie 5 Zeilen, wollen Sie ein Ergebnis von 6 oder 30?
Wenn ein TD umfasst mehr als eine Spalte, dann zählt es als mehr als eine Spalte. Eine Zelle muss nicht unbedingt = eine Spalte, da eine Zelle über mehrere Spalten erstrecken.
InformationsquelleAutor der Frage Andrew | 2011-07-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier gehen Sie:
jsFiddle
InformationsquelleAutor der Antwort Craig M
Ich bearbeitet habe, wie ich nicht erkennen, die Sie waren-zählen der colspan.
Wenn Sie möchten, sind die Verwendung von colspan versuchen Sie eine Schleife durch die td ' s in der ersten Zeile:
InformationsquelleAutor der Antwort scrappedcola
Dies ist die sauberste meiner Meinung nach. Es Griffe Tabellen innerhalb von Tabellen. Und ist kurz und einfach:
InformationsquelleAutor der Antwort Evan Moran
In POJS (Plain Old JavaScript):
HTML:
JS:
HTMLTableElement.Zeilen wird, sammeln Sie Zeilen aus jeder HTMLTableSectionElement (THead, TBody und TFoot). Jeder Abschnitt hat auch seine eigenen
rows
HTMLCollection, so können Sie Sie filtern, wenn es sein muss.InformationsquelleAutor der Antwort
Robust..ich würde etwas tun, wie diese
Nur für den Fall haben wir einige Funkyness zwischen verschiedenen Zeilen.
InformationsquelleAutor der Antwort vinceh
http://jsfiddle.net/WvN9u/
Nur Aufmerksamkeit
colspan attr
InformationsquelleAutor der Antwort Joe
Pass in eine Tabelle mit sowas wie $('foo#Tabelle') oder $('table:first')
InformationsquelleAutor der Antwort rainabba
Zu umgehen, td/th Problem (und auch fix ein Problem, wo attr('colspan') gab mir die strings) ging ich mit dieser:
InformationsquelleAutor der Antwort T.J. Compton
Müssen Sie eine ID für die header-Zeile:
Dann können Sie folgende Funktion verwenden:
InformationsquelleAutor der Antwort Nicolae Albu
Ich vereinfachte Antwort von Craig M.
Und geändert, gelten sowohl für td-und th-tag.
InformationsquelleAutor der Antwort doctorgu
aber bietet ein wenig mehr Details
InformationsquelleAutor der Antwort ByteMe
Mit jQuery und reduzieren, könnte es so Aussehen:
Oder noch einfacher:
InformationsquelleAutor der Antwort shaedrich
Dies ist die einfache Lösung, die ich getan habe:
Falls Sie mit TR ändern TH für TR.
Mit JQUERY:
InformationsquelleAutor der Antwort Leonardo Moura
In Aktion sehen https://jsfiddle.net/kqv7hdg5.
colspan
berücksichtigt werden.<thead>
,<tfoot>
,<tbody>
.<th>
und<td>
.Leicht modifizierte version für diejenigen, die gerne weitergeben möchte die jQuery-Objekt anstelle der Selektor https://jsfiddle.net/5jL5kqp5.
InformationsquelleAutor der Antwort kdmitry
InformationsquelleAutor der Antwort japoncem