Sizzle Selector Engine

Logo

Die Sizzle Selector Engine ist eine auf JavaScript basierende Engine zum Selektieren von Elementen innerhalb des Document Object Models (DOM). Die Engine, entwickelt vom jQuery-Team, ist Standalone nutzbar und ist mit der Version 1.3 des JavaScript-Frameworks jQuery veröffentlicht worden. Sizzle ist nativer Bestandteil von jQuery; weil es von anderen Programmbibliotheken nicht abhängt, können Entwickler diese Engine aber auch in ihr Projekt integrieren.[1]

Problematik

JavaScript bietet dem Entwickler nur eingeschränkte Möglichkeiten, Elemente des DOMs direkt zu selektieren. Eine native und breit unterstützte Möglichkeit zum Selektieren eines Elementes mit einer gegebenen ID ist die Nutzung der Funktion getElementById('idName'). Webentwickler referenzieren aber oft mehrere Elemente ähnlicher Art, etwa alle Elemente, die eine gleiche Klasse besitzen oder Elemente, die ein bestimmtes Attribut beinhalten. Für alle Einzelfälle muss der Entwickler oft mehrzeilige Funktionen schreiben, um eine browserkompatible Lösung zu schaffen.[2] Die Funktion zum Selektieren aller Elemente eines gleichen Typs getElementsByTagName sowie eine Funktion zum Selektieren aller Elemente mit einem Klassennamen getElementsByClassName wird von älteren Browsern nicht fehlerfrei unterstützt.[3][4] Mit HTML5 werden zwar viele Selektionen innerhalb des DOM vereinfacht, jedoch wird dieser Standard des World Wide Web Consortium noch nicht von allen Browsern fehlerfrei unterstützt.

Sizzle nimmt dem Entwickler diese Arbeit ab und stellt eine browserübergreifende, intuitive API bereit.

Prinzip

Die Selektion ist nahezu identisch mit denen der Cascading Style Sheets, auch CSS3-Selektoren werden unterstützt.

Beispiel

Möchte man alle span-Elemente selektieren, die ein direktes Kind aller p-Elemente sind, so erfolgt dies durch folgenden Code:

Sizzle('p > span');

Das Selektieren von Links, die example.org enthalten, erfolgt so:

Sizzle('a[href*="example.org"]');

Da Sizzle nahtlos in jQuery integriert ist, erfolgt eine Selektion in diesem Framework nach dem gleichen Prinzip:

$('a[href*="example.org"]');

Einzelnachweise

  1. Kurze Einführung in Sizzle (Memento des Originals vom 25. September 2011 im Internet Archive)  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/www.myinkblog.com
  2. Eine Beispielfunktion für das Selektieren aller Elemente einer gleichen Klasse, ohne Nutzung von Sizzle (Memento des Originals vom 24. September 2011 im Internet Archive)  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/snipplr.com
  3. Browser-Unterstützung für getElementsByTagName()
  4. Internet-Explorer-kompatible Lösung für getElementsByClassName

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.