Mit javascript css selektorspezifisch eigenschaften ändern

Hallo zusammen

Ich möcht gerne eine interaktive Tabellenfilterfunktion machen. Nur gibts da verschiedene kriterien, die ansich auch verschiedene funktionen sind. Ich hab das so gelöst, dass ich einmal ne klasse für die zeile gesetzt habe, das andere mal die css-eigenschaft. aber das ist nicht so der sinn, denke ich … nun deshalb dacht ich mir, ob es wohl ne möglichkeit gibt, css eigenschaften, anhand von javascript für verschiedene selektoren zu setzen (dann müsst ich die tabelle also nicht mehr durchlaufen, sondern ne css eigenschaft für den betreffenden selektor setzen).

Warum ich nicht einfach die betreffenden zeilen ausblende, und immer auf die selbe art, das ist ganz einfach: weil wenn ich mit ner funktion nach kategorien filtere und die betreffenden zellen ausblende und danach nach nem namen oder ner Mannschaft filtere, wird das erste suchkriterium automatisch überschrieben…

Ich hab da auch schon ne getElementsBySelector()-Funktion gefunden, allerdings weist diese dann das selbe problem auf… ich hoffe ihr seht das problem und könnt mir helfen help

Grüsse
cedl

ich hab mir auch schon gedacht, ich könnt ja bei den funktionen, die filtern nur irgendwie n flag auf y bzw n setzen und danach ne andere funktion aufrufen, die dann die zeilen anhand dieser flags ausblendet oder einblendet… aber vielleicht gehts noch irgendwie einfacher (z.b. so dass ich nicht alle filterfunktionen anpassen muss -.-’’ )

Hi,

vill ist das was für dich viewtopic.php?f=9&t=17190

Aber bitte keine Fragen an mich bin mit js nicht so gut befreundet :wink: :stuck_out_tongue:

lg flo

nein denke nicht ^^
aber ich glaub ich hab meine lösung (halt nicht so ressourcenfreundlich, aber bei dem umfang der tabelle macht das nix ^^)

google.com/search?q=styleshe … javascript

Verallgemeinert verstehe ich das Problem so, daß mit javascript die CSS-Eigenschaften
einer ganzen Gruppe von HTML-Elementen geändert werden sollen. Dafür brauchen wir CSS-Styles mit Selectoren, deren Elternelemente mit einer Klasse referenziert werden.
.cl1 td {…}
.cl2 td {…}
Durch ein Ändern der Klasse des Elternelements mit javascript bekommen dann auch alle
Kindelemente mit einem Schlag selectorspezifisch neue Eigenschaften.

Ja, ich lös das jetzt so (oder habs so gelöst):
Jede Tabellenzeile hat ein Attribut filter=“nnn” (wobei die drei n jeweils für eine andere Art des Filterns stehen, wenn jetzt eines dieser drei n ein y ist (also wenn der Wert des Attributs ein y enthält) bekommt es die klasse “hidden” und wird entsprechend ausgeblendet.
Wenn nun aber die Zeile nicht gefiltert werden soll (sprich wenn das Attribut den Wert “nnn” hat), wird die Klasse wieder entfernt.