Leichte alternative zu jQuery für die Klasse / id auswählen
Lassen Sie uns sagen, das ich bauen will ein nicht-abhängig-javascript-framework/script. Gibt es eine Möglichkeit zu nutzen jQuery ist erstaunlich, Klassen-und element-Auswahl-Funktionalität
$('.this') or $('#this') or $('div', '.this')
Ohne abhängig zu sein von jQuery oder die Verwendung von jQuery, wenn es verfügbar ist, aber wenn nicht, funktioniert es ohne? Ich habe gesucht diese hoch und niedrig. Vielleicht Suche ich falsch, wie der nächste, den ich bekommen haben ist diese:
Die Auswahl von Elementen ohne jQuery
Aber, dass ist nicht so in die Tiefe wie ich will, oder so ähnlich wie ich will jQuery. Ich habe nachgedacht über das Graben durch den jQuery source und Entkernung dieses Stück aus und verwenden es, aber ich hoffe, jemand hat dies bereits getan und ich bin gerade auf der Suche an der falschen Stelle und jemand anderes weiß es.
Update
Diese schon beantwortet, in ein paar Möglichkeiten, und danke für die schnellen Antworten. Ich war auf der Suche in die falsche Methode. Ich kam schließlich auf: https://github.com/ded/qwery
Aber diese Antwort hier macht den job perfekt:
Leichte alternative zu jQuery für die Klasse /id auswählen
- Ich bin mir nicht sicher, warum Sie nicht einfach jQuery verwenden? Bis Funktionalität wie diese gebaut wird in Browsern in einer standard-Weise (HAH!), Sie stecken mit mit Dienstprogramm-Bibliotheken wie jQuery.
- Es ist für ein Skript, wo Sie sind nicht angewiesen auf jQuery, aber kann es benutzen, wenn verfügbar. Nicht jeder nutzt jQuery und ich möchte zu erschließen, die Quelle und gehen, bevor ich code meine eigenen, ich hatte gehofft, es gibt schon so etwas gemacht wie dieser.
- Wenn Sie wirklich brauchen, um die app leicht, dann nicht mit einem entkernt jQuery. Suche im Internet nach einem Rahmen, der entworfen wird, nur für dom-navigation und-manipulation. Es gibt Dutzende von frameworks da draußen, ich bin sicher, es gibt eine, die Ihren Bedürfnissen passt genau.
- Die
id
selector ist einfach genug:document.getElementById('#id
)`. So weit nicht so gut unterstützt wird, aber "Dokument".getElementsByClassName(), wird wieder eine Liste. - Seien Sie nicht so pessimistisch SoWeLie. Diese Funktionalität ist verfügbar, über 70% der internet-Nutzer aber-Dokument.querySelectorAll. Nur der IE6 und IE7 nicht haben, Sie es und Sie können polyfill zurück zu so etwas wie jQuery in diesem Fall.
- Anfragen wurden nie gebraucht in den ersten Platz. Clever DOM-traversal (versuchen zu denken, rekursiv) zusammen mit ein paar RegExp überprüfungen auf ein element
className
können den job zu erledigen. Verlassen Sie sich meist aufid
s, wenn Sie können.
Du musst angemeldet sein, um einen Kommentar abzugeben.
In alles, aber IE6 und IE7, die Sie verwenden können
document.querySelectorAll
odersomeElement.querySelectorAll
für ähnliche Auswahl Funktionalität.Update mehr details:
Sieht es aus wie ZeptoJS tut das folgende. Dieser arbeitet mit schnellen Funktionen für
$$(document, '#myid')
,$$(document, '.myclass')
,$$(document, 'div')
und langsame Suchvorgänge für$$(document, 'div > .myclass')
slice.call
Sie fehlen[].
emptyArray = [], slice = emptyArray.slice
. Ich werde aktualisieren Sie den code oben.Könnten Sie tun, was jQuery macht, und verwenden Brutzeln: http://sizzlejs.com/
Antwort auf "ich brauche eine kleine JS-Bibliothek,..." ist diese Seite: http://microjs.com/
speziell, Sie suchen eine selector-engine:
http://microjs.com/#css
Haben Sie sich zepto.js? Sie würden immer noch abhängig von einem Rahmen, aber es ist viel leichter, Gewicht: etwa 5 Kb anstelle von 31kb.
Nur versuchen jBone, Bibliothek für Veranstaltungen und DOM-manipulation. jBone hat viel bessere Leistung, dann jQuery/Zepto, kleinere Größe und die volle Unterstützung für alle Selektoren, events API.
MicroSelector. Noch kleiner und schneller als Zepto, die kleiner ist als die Spannung, die kleiner ist als JQuery.