td index nach ausblenden einer spalte


strukturart

Erfahrenes Mitglied
Hallo,

ich möchte ein Spalte mit einem klick auf den Spaltenkopf ausblenden.


Code:
  $('table th span').click(function() {
        var cell = $(this).closest('th');
        var col = cell[0].cellIndex

        $("td:nth-child(" + col + ")").each(function() {
            $(this).css("display", "none")
        })
        $("th:nth-child(" + col + ")").css("display", "none")


    })

Bei ersten klick funktioniert es, jedoch wird bei jedem weitern klick der Index nicht auktualisiert und somit die falsche Spalte ausgeblendet.
Wie aktualisiert man den Index ?
 

Sempervivum

Erfahrenes Mitglied
Bei mir funktioniert es auch beim ersten Mal nicht richtig. Offenbar ist die Zählung unterschiedlich: Beim cellIndex beginnt sie bei 0 und beim CSS bei 1. Dieses funktioniert bei mir:
Code:
        $('table th span').click(function () {
            var cell = $(this).closest('th');
            var col = cell[0].cellIndex + 1;

            $("td:nth-child(" + col + ")").css("display", "none")
            $("th:nth-child(" + col + ")").css("display", "none")
        });
Oder liegt es an der Struktur der Tabelle und das Verhalten ist bei dir anders?