Hi,
Wie willst du sowas "besser" lösen? Ist
document.getElementsByClassName()
nicht genau das richtige Werkzeug, wenn ich Elemente anhand ihrer Klasse auswählen will?Kommt drauf an, wozu du das willst. Wenn es darum geht, alle Elemente einer bestimmten Klasse dynamisch umzustylen, braucht man kein
document.getElementsByClassName()
.
Ah, danke für die Infos, diese Diskussionen gingen an mir vorbei.
Ich nutze momentan diese Funktion um z.B. Event-Handler an die Nodes zu binden. U.U. weiß ich vorher nicht, ob oder wo gewisse Elemente existieren.
Beispiel: ich lade mir ein Template um ein DOM-Fragment zu erstellen. Dieses Template entscheidet anhand der Eingabedaten, ob es gewisse Buttons darstellt oder nicht. Nach dem evaluieren greife ich mit getElementsByClassName
auf das DOM-Fragment zu und binde allen Elementen mit der Klasse an meinen Event-Handler.
So könnte ich ggf. die Templates austauschen, ohne das JS anpassen zu müssen. Derjenige, der das Template schreibt, muss nur die Zuordnung von Klasse zu Event-Handler kennen.
Letzte Frage (und ich gebe zu, dass ich dies durch selbstausprobieren auch evaluieren könnte): ist ein getElementsByClassName
langsamer als ein entsprechender Selektor in CSS? Es passiert doch beim Traversieren des DOM-Baumes in beiden Fällen nichts wesentlich anderes.
Bis die Tage,
Matti