Bücher online kostenlos Kostenlos Online Lesen
JQuery Kochbuch (German Edition)

JQuery Kochbuch (German Edition)

Titel: JQuery Kochbuch (German Edition) Kostenlos Bücher Online Lesen
Autoren: jQuery Community Experts
Vom Netzwerk:
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:
...

...

...

...

    Wir könnten mit dem folgenden Selektor nun alle

-Elemente selektieren:
jQuery('div[id^="content-sec-"]');

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