jQuery – selektory i filtry (cz. I)

21.11.2009 - Rafał Polito
TrudnośćTrudność

Filtry potomków

Wcześniej wspominałem o przodkach. Teraz czas na potomków. Do wybrania potomków możemy użyć filtrów :first-child, :last-child, :nth-child(n). Odpowiednio pierwszy i drugi filtr wybierają pierwsze i ostatnie dziecko. Filtr :nth-child(n) pozwala nam wybrać n-te dziecko indeksując od 1. Dla osób przyzwyczajonych indeksować od zera istnieje filtr :nth(n). Działa on identycznie jak :eq(n). Co ciekawe, jQuery pozwala nam podać także wyrażenie opisujące numer dziecka np. dziecko numer 2n+1 gdzie n jest dowolną liczba naturalną. W miejsce n możemy użyć filtra :even, co wybierze nam wszystkie parzyste dzieci zaś filtry :odd – nieparzyste.

John
Karl
Brandon
Benjamin
Sam
Glen
Tane
Ralph
David
Mike
Dan

tr

Z filtrów „dziecięcych” wymienić można jeszcze filtr :only-child wybierający jedynaków.

1
$(„p a:only-child”)

Ten selektor wybierze wszystkie linki z tych paragrafów, które zawierają tylko jeden link.Wszystkie pozostałe linki, gdzie jest ich więcej niż jeden w pozostałych paragrafach – nie zostaną wybrane.

Filtry zawartości

Filtrować możemy też według zawartości elementu. Chcąc wybrać elementy zawierające jakiś dany tekst użyjemy filtra :contains(‘tekst’), gdzie w miejsce tekst wpisujemy szukanej zawartości.

1
$(:contains("news"))
Aby znaleźć np. kontenery div z paragrafami użyjemy selektora:

1
$(„div:has(p))

Możemy szukać także pustych elementów. Posłuży nam do tego filtr :empty. Szukać również możemy rodziców tzn. elementów, które mają jakąś zawartość, tekst lub inny selektor.

1
2
3
4
    <table border="1">
        <tr><td>1</td><td></td></tr>
        <tr><td>2</td><td></td></tr>
    </table>
1
$(„td:parent”)

Powyższy selektor wybierze z tego przykładu tylko dwa elementy td, będą to te, w których mamy wartość 1 i 2. Reszta nie doczekała się jeszcze potomstwa i nie zostanie wybrana przez ten selektor.

3
Twoja ocena: Brak Ocena: 3 (1 ocena)

Copyright © 2008-2010 Wrocławski Portal Informatyczny

design: rafalpolito.com