IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

7. diel - Selektory v jQuery, časť druhá

V minulej lekcii, Selektory v jQuery, časť prvá , sme začali prieskum selektorov jQuery. V dnešnom JavaScript tutoriálu budeme pokračovať a predstavíme si ďalšie selektory.

Príprava stránky

Rovnako ako minule si selektory budeme ukazovať na rovnakom HTML dokumentu. Pre úplnosť uvádzam znovu jeho HTML a CSS časti:

Html

<ul id="web">
    <h2>WEB</h2>
    <li>HTML</li>
    <li>CSS</li>
    <li>JS</li>
    <li>PHP</li>
    <li>ASP .NET</li>
    <li>JAVA</li>
</ul>
<ul id="desktop">
    <h2>DESKTOP</h2>
    <li>JAVA</li>
    <li>C# .NET</li>
    <li>VB .NET</li>
    <li>PYTHON</li>
    <li>PASCAL</li>
</ul>
<ul id="zvirata">
    <h2>ZVÍŘATA</h2>
    <li>PES</li>
    <li>KOČKA</li>
    <li>PAPOUŠEK</li>
    <li>LEV</li>
    <li>DRAK</li>
    <li>ŽELVA</li>
</ul>
<ul id="barvy">
    <h2>BARVY</h2>
    <li>RŮŽOVÁ</li>
    <li>MODRÁ</li>
    <li>ČERNÁ</li>
    <li>ZELENÁ</li>
</ul>
<ul id="nesmysly">
    <h2>NESMYSLY</h2>
    <li data-nesmysl="69">69</li>
    <li data-nesmysl="69 xoxo">69 xoxo</li>
    <li data-nesmysl="69-nth">69-nth</li>
    <li data-nesmysl="nu69kl tik">nu69kl tik</li>
    <li data-nesmysl="hute 69p ui">hute 69p ui</li>
    <li data-nesmysl="qwe 69rty" id="qwerty">qwe 69rty</li>
    <li data-nesmysl="69 BIT">69 BIT</li>
    <li data-nesmysl="party 69">party 69</li>
</ul>

CSS

body {
    background: #e5e5e5;
    color: #3d3d3d;
    margin: 0px;
    font-family: 'Open Sans';
}

* {
    margin: 0px;
    padding: 0px;
    text-decoration: none;
    list-style-type: none;
    border: 0px;
}

ul {
    float: left;
    padding: 10px 20px;
    text-align: center;
}

ul li {
    background : #CACACA;
    color      : #444;
    width      : 80px;
    border     : 2px solid #A6A6A6;
    margin     : 10px 0;
    padding    : 5px 10px;
    font-family: 'Open Sans';
    font-size  : 18px;
    text-align: left;
}

.green {
    background : #61E452;
    color      : #ededed;
    border     : 2px solid #1A7010;
}

.blue {
    background : #0080C0;
    color      : #ededed;
    border     : 2px solid #004080;
}

.yellow {
    background : #F4FF2F;
    color      : #444;
    border     : 2px solid #D0CB04;
}

.red {
    background : #ed1c24;
    color      : #ededed;
    border     : 2px solid #7f0011;
}

Stránka vyzerá takto:

Tvoja stránka
localhost

Pseudoselektory

Pseudo-selektory sa rozumie také selektory, ktoré vyberajú elementy podľa nejakej ich vlastnosti.

$ ( ": first-child")

Selektor :first-child nám vyberie, ako už iste tušíte z názvu, prvého potomka alebo potomkov z nejakého rodičovského elementu alebo elementov.

Príklad:

$("ul li:first-child").addClass("blue");

výsledok:

Tvoja stránka
localhost

$ ( ": first-of-type")

Pomocou :first-of-type vyberieme prvý element daného typu v rodičovskom elementu. Typom myslíme napríklad odstavec - p.

Príklad:

$("ul li:first-of-type").addClass("blue");

výsledok:

Tvoja stránka
localhost

Aký je teda rozdiel medzi :first-child a :first-of-type ?

Keď si skúsime na našom príklade použiť tieto selektory, zistíme, že nám funguje len :first-of-type. Je to tým, že v našom zozname je prvý element nadpis. li:first-child teda v zozname nie je.

$ ( ": last-child")

Je opakom :first-child, vyberie nám posledný element z rodičovského elementu. Ako u všetkých jQuery metód platí, že je možné vybrať aj viac elementov (napr. Posledná elementy z niekoľkých zoznamov). U ďalších metód a selektorov už túto informáciu nebudeme zmieňovať.

Príklad:

$("ul li:last-child").addClass("blue");

výsledok:

Tvoja stránka
localhost

$ ( ": last-of-type")

Selektor :last-of-type nám vyberie posledného potomka daného typu v danom rodičovskom elementu.

Príklad:

$("ul li:last-of-type").addClass("blue"); // v našem případě stejný efekt jako minule

výsledok:

Tvoja stránka
localhost

$ ( ": nth-child (n)")

Tento selektor vyberie n-tý element v danom rodičovskom elementu.

Príklad:

$("ul li:nth-child(3)").addClass("blue");

výsledok:

Tvoja stránka
localhost

$ ( ": nth-of-type (n)")

A teraz vyberieme zas n-tý element daného typu.

Príklad:

$("ul li:nth-of-type(3)").addClass("blue");

výsledok:

Tvoja stránka
localhost

$ ( ": nth-last-child (n)")

Tento selektor je podobný ako :nth-child(n), avšak tu vyberáme od konca.

Príklad:

$("ul li:nth-last-child(3)").addClass("blue");

výsledok:

Tvoja stránka
localhost

$ ( ": nth-last-of-type (n)")

Rovnako ako u predchádzajúceho selektora vyberáme od konca, teraz však iba elementy daného typu.

Príklad:

$("ul li:nth-last-of-type(3)").addClass("blue"); // v našem případě stejný efekt jako minule

výsledok:

Tvoja stránka
localhost

$ ( ": only-child")

Selektor nám vyberie všetky elementy, ktoré sú v danom rodičovskom elemente samy.

Príklad:

$("h2:only-child").addClass("blue");

výsledok:

Tvoja stránka
localhost

$ ( ": only-of-type")

Variant predchádzajúceho selektora s tým, že sa v rodičovskom elemente musí nachádzať jediný element daného typu. V tomto prípade sa v rodičmi môžu nachádzať ďalšie elementy iného typy.

Príklad:

$("h2:only-of-type").addClass("blue");

výsledok:

Tvoja stránka
localhost

Zaradiť sem môžeme i špeciálne jQuery selektory :lt(), :gt(), :odd, :even, :first, :last a :eq(). O nich si ale povieme až nabudúce.

Filter obsahu

Na záver dnešnej lekcie si predstavíme selektory, ktoré slúžia na filtrovanie obsahu nejakého rodičovského elementu.

$ ( ": not ()")

Selektor :not() zneguje ľubovoľný selektor. Vyberie teda elementy, ktoré ho nespĺňajú.

Príklad:

$("ul li:not([data-nesmysl='69'])").addClass("blue");

výsledok:

Tvoja stránka
localhost

$ ( ": contains ()")

Tento selektor nám vyberie elementy, ktoré obsahujú vo vnútornom texte nejaký podreťazec (napr. Slovo). Dávajte si pozor na veľkosť písmen, selektor je na ňu citlivý.

Príklad:

$("ul li:contains('A')").addClass("blue");

Že naozaj záleží na veľkosti písmen si môžete všimnúť v poslednom stĺpci, kedy sa nám nič čo obsahuje malé a nezadarbia.

Tvoja stránka
localhost

$ ( ": empty")

Selektor :empty nám vyberie elementy, ktoré neobsahujú žiadny text ani vnorené elementy.

$ ( ": checked")

Selektor vyberie zaškrtnuté Input typu radio či checkbox.

Nabudúce budeme pokračovať a selektory v lekcii Selektory v jQuery, časť tretia dokončíme.


 

Mal si s čímkoľvek problém? Stiahni si vzorovú aplikáciu nižšie a porovnaj ju so svojím projektom, chybu tak ľahko nájdeš.

Stiahnuť

Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami

Stiahnuté 231x (1.74 kB)
Aplikácia je vrátane zdrojových kódov v jazyku JavaScript

 

Predchádzajúci článok
Selektory v jQuery, časť prvá
Všetky články v sekcii
Základy jQuery
Preskočiť článok
(neodporúčame)
Selektory v jQuery, časť tretia
Článok pre vás napísal Honza Bittner
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
FIT ČVUT alumnus :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/tenhobi/ama.
Aktivity