Mehrere Elemente ausblenden
CinimoD
- javascript
0 Manuel B.
0 Gunnar Bittersmann
0 Cybaer0 Cybaer0 Gunnar Bittersmann
0 Cybaer
Hallo,
ich generiere mit PHP eine tabelle die unterschiedlich viele Zeilen haben kann. Jede zweite Zeile enthält optionale Zusatzinformationen die man mit einem Klick auf eine checkbox verstecken können soll.
Meine Frage ist jetzt: Gibt es eine Möglichkeit mit der alle "tr"-elemente die der CSS-Klasse "xyz_enable" zugeordnet sind einer zweiten CSS-Klasse "xyz_disable" mit einem klick auf eine checkbox zugeordnet werden können?
Benutze sonst eher wenig bis garkein javascript und kenne mich deshalb damit nicht aus. Habe bis jetzt nur möglichkeiten gefunden wie getElementByID, aber mit dieser könnte ich ja nur eine Zeile ausblenden :(
Hat da jemand eine Lösungs oder zumindest einen Lösungsansatz?
Ich grüsse den Cosmos,
Meine Frage ist jetzt: Gibt es eine Möglichkeit mit der alle "tr"-elemente die der CSS-Klasse "xyz_enable" zugeordnet sind einer zweiten CSS-Klasse "xyz_disable" mit einem klick auf eine checkbox zugeordnet werden können?
Na klar geht das. Du brauchst onClick() für die Checkbox und http://de.selfhtml.org/javascript/objekte/all.htm#class_name:title=className für die Elemente
Benutze sonst eher wenig bis garkein javascript und kenne mich deshalb damit nicht aus. Habe bis jetzt nur möglichkeiten gefunden wie getElementByID, aber mit dieser könnte ich ja nur eine Zeile ausblenden :(
Dann nimm doch getElementsByName(), damit kannst du auf alle Elemente zugreifen, die den gleichen Namen haben.
Möge das "Self" mit euch sein
Hello out there!
Dann nimm doch getElementsByName(), damit kannst du auf alle Elemente zugreifen, die den gleichen Namen haben.
'tr'-Elemente haben keine 'name'-Attribute. [https://forum.selfhtml.org/?t=160059&m=1041076 f.]
See ya up the road,
Gunnar
Ich grüsse den Cosmos,
'tr'-Elemente haben keine 'name'-Attribute. [https://forum.selfhtml.org/?t=160059&m=1041076 f.]
Na da schau her, schon wieder was gelernt ;) Da ich meine Seiten nach dem Schrfeiben immer durch den Validator jage, fallen mir solche Sachen,
die ich praktisch nie hernehme, immer erst dann auf.
Möge das "Self" mit euch sein
Hello out there!
Meine Frage ist jetzt: Gibt es eine Möglichkeit mit der alle "tr"-elemente die der CSS-Klasse "xyz_enable" zugeordnet sind einer zweiten CSS-Klasse "xyz_disable" mit einem klick auf eine checkbox zugeordnet werden können?
[…]
Hat da jemand eine Lösungs oder zumindest einen Lösungsansatz?
[https://forum.selfhtml.org/?t=160045&m=1040907] dürfte was für dich sein.
See ya up the road,
Gunnar
Hi,
Hat da jemand eine Lösungs oder zumindest einen Lösungsansatz?
Einfacher (und schneller) als alle entsprechenden Elemente durchzugehen und jeweils einzeln die Klasse zu ändern, ist es in diesem Fall, einfach die CSS-Regel dieser Klasse selbst zu ändern:
cssRule("xyz","display","none");
bzw.
cssRule("xyz",display","");
um die Elemente wieder sichtbar zu machen.
Gruß, Cybaer
Hi,
(grummel) Der Korrektheit halber:
cssRule("xyz","display","none");
Wenn's xyz der Name der Klasse wäre, dann müßte es natürlich lauten: cssRule(".xyz","display","none"); =;-)
Gruß, Cybaer
Hello out there!
Einfacher (und schneller) als alle entsprechenden Elemente durchzugehen und jeweils einzeln die Klasse zu ändern, ist es in diesem Fall, einfach die CSS-Regel dieser Klasse selbst zu ändern:
Aber ist das einfacher (und schneller) als die Klasse eines Elements zu ändern?
See ya up the road,
Gunnar
Hi,
Aber ist das einfacher (und schneller) als die Klasse eines Elements zu ändern?
So wie ich das verstanden habe, geht es *hier* darum, *mehrere* Elemente stilistisch zu ändern.
Also die Antwort: Ja, es ist iMHO einfacher (und schneller).
Wenn es, wie im verlinkten Fall, nur um einzelne/wenige Elemente geht, dann ist sicherlich das Ändern des Klasse einfacher/schneller - und deswegen habe ich mich in dortigem Thread (den ich vorher gelesen und dessen Verlinkung hier ich ebenfalls bemerkt hatte) auch zurückgehalten ... ;-)
Es ist i.d.R. weitaus performanter, statt z.B. 1000 Elemente (hier: Tabellenzeilen) zu ermitteln (z.B. via getElementsByClassName()), und dann 1000-mal die Klasse zu ändern, dieses einmalig im Stylesheet für alle 1000 Elemente zu erledigen, oder?
Gruß, Cybaer
Hello out there!
Aber ist das einfacher (und schneller) als die Klasse eines Elements zu ändern?
So wie ich das verstanden habe, geht es *hier* darum, *mehrere* Elemente stilistisch zu ändern.
Und wo siehst du einen Widerspruch? Den Nachfahrenselektor kennst du?
in dortigem Thread (den ich vorher gelesen und dessen Verlinkung hier ich ebenfalls bemerkt hatte)
Den Eindruck erweckst du nicht ...
statt z.B. 1000 Elemente (hier: Tabellenzeilen) zu ermitteln (z.B. via getElementsByClassName()), und dann 1000-mal die Klasse zu ändern
... denn davon rede ich ja nicht.
See ya up the road,
Gunnar
Hi,
Den Nachfahrenselektor kennst du?
Selbstredend. =:-)
statt z.B. 1000 Elemente (hier: Tabellenzeilen) zu ermitteln (z.B. via getElementsByClassName()), und dann 1000-mal die Klasse zu ändern
... denn davon rede ich ja nicht.
Ups, sorry, hast Recht. Ich hatte den Thread verwechselt ... =:-)
Gruß, Cybaer