Query-Syntax nachrüsten
Kategorie JavaScript
Datum: 07.06.2008, 19:27 - Autor: Manko10
Seit einiger Zeit gibt es eine Fülle an JavaScript-Frameworks; alle mehr oder weniger brauchbar. Ob nun Fluch oder Segen: es ist unbestreitbar, dass es einige nützliche Funktionalitäten gibt, die einige Frameworks mit sich bringen und auf die man nicht verzichten will.Doch will man nicht immer gleich ein ganzes Framework benutzen. Also stellt sich die Frage, ob man gewisse Features nicht auch selbst nachrüsten kann.
Ein weit verbreitetes Feature, das man z.B. aus Prototype oder jQuery kennt, ist eine verkürzte DOM-Syntax, die in etwa so aussieht:
| Code: | ||
|---|---|---|
|
| Code: | ||
|---|---|---|
|
Dieses Feature ist auch gar nicht so schwer nachzurüsten. Fassen wir zusammen, was diese Query-Funktion können soll:
- Bei Angabe von #xyz soll ein Element mit der ID xyz zurückgegeben werden.
- Bei Angabe von .xyz soll ein Array aller Elemente mit dem class-Namen xyz zurückgegeben werden.
- Andernfalls soll ein Array aller Elemente mit entsprechendem Tagnamen zurückgegeben werden.
| Code: | ||
|---|---|---|
|
Nachdem wir das haben, können wir an die Implementierung der eigentlichen Query-Funktion gehen:
| Code: | ||
|---|---|---|
|
Ist das erste Kriterium nicht erfüllt, werden alle Elemente, deren Tagname dem Selektor entspricht, zurückgegeben.
Das wäre es an sich auch schon. Nun bietet jQuery aber z.B. noch einiges mehr. Zum Beispiel bestimmte Methoden, die den Zugriff auf verschiedene Eigenschaften noch weiter vereinfachen. Diese lassen sich jedoch auf die gleiche Weise dem Ergebnis hinzufügen, wie wir dem document-Objekt die Methode getElementsByClassName() hinzugefügt haben.
Es wäre auch möglich, statt der eigentlichen Element-Referenzen Instanzen einer Klasse zurückzugeben, die den Zugriff auf die nativen Eigenschaften kapselt. Also praktisch ein Adaper-Pattern
Natürlich soll das jetzt kein Anreiz sein, jQuery nachzuprogrammieren (wer alle Features von jQuery haben will, der benutze lieber gleich jQuery
), aber man kann doch durchaus seine eigene und für einen selbst passende Light-Version erstellen.
Seiten: (1/1) 1
3 Kommentare:
Datum: 02.11.2008, 18:35 - Autor: nikosch
Coole Idee. Kleine Anregung: Unterhttp://www.php.de/tutorials/44167-js-einfuehrung-javascript-im-schichtenmodell.html / "Schritt 1: Eine Grundlage" habe ich eine Funktion gepostet, mit der getElementsByClass auch für mehrteilige Klassenattribute möglich ist. Sinnvoll z.B., wenn man Elemente mit CSS Klassen und gleichzeitig für unobtrusive JS auszeichen will.
Datum: 02.11.2008, 19:30 - Autor: Gast
Argh, Manko, Deine Kommentarbox ist nicht Reload-sicher... Sorry.Datum: 02.11.2008, 19:36 - Autor: Manko10
Nicht so schlimm, ich habe ein Lösch-Icon neben jedem Beitrag.