Filter :hidden ist in den meisten Situationen schon genau das richtige.
Elemente anhand von Attributen selektieren Problem Sie wollen Elemente anhand ihrer Attribute und deren Werte selektieren. Lösung Nutzen Sie einen Attributs-Selektor, um die entsprechenden Attribute und deren Werte zu finden: jQuery('a[href="http://google.com"]'); Dieser Selektor findet alle Anker-Elemente mit einem Attribut href , das den angegebenen Wert besitzt ( http://google.com ). Es gibt eine Reihe von Möglichkeiten, den Attributs-Selektor zu nutzen: [attr] Findet Elemente, die das angegebene Attribut enthalten. [attr=val] Findet Elemente, die das angegebene Attribut zusammen mit einem bestimmten Wert enthalten. [attr!=val] Findet Elemente, die das angegebene Attribut oder den Wert nicht enthalten. [attr^=val] Findet Elemente, die das angegebene Attribut enthalten, dessen Wert mit einem bestimmten Text beginnt. [attr$=val] Findet Elemente, die das angegebene Attribut enthalten, dessen Wert mit einem bestimmten Text endet. [attr~=val] Findet Elemente, die den angegebenen Wert als eigenes Wort enthalten (so wird mit rot zum Beispiel rot , aber nicht Brot gefunden). ---- Warning Vor jQuery 1.2 mussten Sie XPath-Syntax nutzen (also ein @ vor den Attributsnamen setzen). Das ist nun nicht mehr der Fall. ---- Sie können auch mehrere Attributs-Selektoren kombinieren: // Selektieren aller Elemente mit einem TITLE und einem HREF: jQuery('*[title][href]'); Diskussion Wie immer ist es bei speziellen Anforderungen oft besser, die Methode filter() zu nutzen,um genauer angeben zu können, was man sucht: jQuery('a').filter(function(){ return (new RegExp('http:\/\/(?!' + location.hostname + ')')).test(this.href); }); In diesem Filter wird ein regulärer Ausdruck genutzt, um das href -Attribut jedes Ankers zu prüfen. Dabei werden alle externen Links auf einer Seite selektiert. Der Attributs-Selektor ist insbesondere dann nützlich, wenn man Elemente anhand nur leicht unterschiedlicher Attribute selektiert. Schauen Sie sich zum Beispiel folgenden HTML-Code an:
Form-Elemente anhand des Typs selektieren Problem Sie wollen Form-Elemente anhand ihres Typs ( hidden , text , checkbox und so weiter) selektieren. Lösung jQuery stellt für diesen Zweck eine ganze Reihe von nützlichen Filtern bereit,wie in Table 2-1 zu sehen. Table 2-1. Form-Filter von jQuery Syntax des jQuery-Selektors Auswahl von :text
:password
:radio
:checkbox
:submit
:image
:reset
:button
:file
:hidden
Wenn Sie nun zum Beispiel alle Text-Eingabefelder selektieren müssen, würden Sie einfach jQuery(':text'); verwenden. Es gibt auch einen Filter :input , der alle Elemente vom Typ input , textarea , button und select selektiert. Diskussion Beachten Sie, dass der Filter :hidden , wie schon besprochen, nicht auf den Typ hidden prüft, sondern auf die Höhe des Elements achtet. Das funktioniert auch mit Eingabe-Elementen des Typs hidden , da sie wie andere verborgene Elemente eine offsetHeight von Null haben. Wie bei allen Selektoren können Sie die Filter auch nach Bedarf kombinieren: jQuery(':input:not(:hidden)'); // Selektiert alle Eingabe-Elemente außer denen, die verborgen sind. Diese Filter können auch mit normaler CSS-Syntax genutzt werden. Um zum Beispiel alle Text-Eingabeelemente plus alle