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

6. diel - Selektory v jQuery, časť prvá

V minulej lekcii, Triedy v jQuery (DOM) , sme sa naučili pracovať so triedami v knižnici jQuery. V dnešnom JavaScript tutoriále si ukážeme, aké selektory môžeme v jQuery používať. Tá totiž okrem selektorov známych z CSS ponúka i mnoho ďalších.

Selektor

Čo je to selektor? Vieme, že stránka je tvorená DOM štruktúrou, ktorá obsahuje rôzne elementy. Tie musíme nejako vybrať, aby sme ich mohli napríklad v CSS ostylovat alebo v JavaScripte animovať (alebo s nimi jakkkoli inak pracovať). Selektor nám umožňuje tieto elementy z domov vybrať.

Všetky selektory zapisujeme medzi zátvorky do funkcie jQuery(), skrátene do $(). Selektor sa môže skladať z viacerých za sebou zapísaných selektorov.

Poďme si teda ukázať danej selektory.

Príprava stránky

Všetko si ukážeme na pomerne rozsiahlom HTML dokumentu, ktorý je ostylován pomocou CSS. Funkčnosť rôznych selektorov si overíme pomocou pridávanie tried, čo už vieme z "javascript/jquery-zaklady/tutorial-jquery-dom-tridy > minulé lekcie.

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 bude vyzerať takto:

Tvoja stránka
localhost

Základné selektory

Vysvetlime si najprv niekoľko základných selektorov, ktoré sa používajú najčastejšie a ktoré nájdeme aj v CSS. Vyberajú nám elementy podľa názvu elementu alebo podľa jeho umiestnenia.

$ ( "element")

Selektor označí všetky elementy daného typu. Môžeme použiť aj selektor $("element element2"), ktorý nám spresní polohu elementov. Tu konkrétne, že označujeme <element2>, vložený v <element>.

Príklad:

$("li").addClass("blue");

výsledok:

Tvoja stránka
localhost

$ ( "*")

Selektor označí úplne všetko. Pokiaľ ho použijeme po nejakom inom selektora, napríklad $("div *"), označí nám všetky elementy, ktoré <div> obsahuje.

$ ( "# id")

Elementy podľa id, teda ich jedinečného identifikátora, vyberáme napísaním názvu id, ktorý predsadíme mriežkou - #. Napríklad #mojeID.

Príklad:

$("#barvy").addClass("blue");

výsledok:

Tvoja stránka
localhost

$ ( "selector1, selector2, selectorN")

Môžeme uviesť aj viac selektorov, ktoré spolu nijako nesúvisí, a tak označiť rôzne časti stránky. Všetko stále zadávame ako jeden reťazec, úvodzovky teda píšeme iba na okrajoch.

Príklad:

$("#barvy li, #web li").addClass("blue");

výsledok:

Tvoja stránka
localhost

$ ( ". class")

Obdobne ako podľa id môžeme označovať aj na základe triedy. Pred ňou musíme napísať bodku, teda napríklad .mojeTrida.

$ ( "rodic> potomok")

Znak > medzi elementy v selektora hovorí, že elementy v sebe musí byť priamo vložené. Aby selektor fungoval, nesmie byť medzi nimi žiadni ďalší potomkovia.

Príklad:

$("#web > li").addClass("blue");

výsledok:

Tvoja stránka
localhost

$ ( "predchozi + dalsi")

Tiež môžeme použiť znak +, ktorý nám vyberie element nasledujúce bezprostredne za daným elementom (teda ktorý je tesne vedľa neho). Elementy musia byť na rovnakej úrovni.

Príklad:

$("#desktop + ul li").addClass("blue");

výsledok:

Tvoja stránka
localhost

$ ( "predchozi ~ súrodenci")

Tento selektor využíva znak ~, ktorý nám vyberie všetky nasledujúce súrodenca daného elementu. Súrodenci myslíme elementy na rovnakej úrovni.

Príklad:

$("#desktop ~ ul li").addClass("blue");

výsledok:

Tvoja stránka
localhost

Ohľadom základných selektorov to bude asi všetko. Prejdime k tým pokročilejším :)

Selektor atribútov

V selektor môžeme využiť tiež atribúty HTML elementov (napríklad placeholder, type, href, alebo niečo vlastného - data-cokoli).

Každá položka v zozname nezmysly má nejakú hodnotu zapísanú v atribútu data-nesmysl. Ukážme si, ako môžeme túto hodnotu filtrovať a vybrať iba obsah, ktorý chceme.

$ ( "atribút")

Selektor nám vyberie len tie elementy, ktoré majú v danom atribúte danú hodnotu. Môžu mať tiež danú hodnotu a za ňou po pomlčce - niečo ďalšie.

Príklad:

$("[data-nesmysl|='69']").addClass("blue");

výsledok:

Tvoja stránka
localhost

$ ( "[atribút * = 'hodnota']")

Tento selektor nám vyberie elementy s daným atribútom, v ktorých hodnote sa nachádza daný podreťazec.

Príklad:

$("[data-nesmysl*='69']").addClass("blue");

výsledok:

Tvoja stránka
localhost

$ ( "[atribút ~ = 'slovo']")

Tento selektor porovnáva, či atribút elementov obsahuje dané slovo. Hodnotou atribútu môže byť aj viac slov, teda napríklad "dnes je slnečno", kde sú slová oddelené medzerami.

Príklad:

$("[data-nesmysl~='69']").addClass("blue");

výsledok:

Tvoja stránka
localhost

$ ( "[atribút $ = 'hodnota']")

Pri použití tohto selektora musí hodnota daného atribútu končiť daným podreťazcom.

Príklad:

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

výsledok:

Tvoja stránka
localhost

$ ( "[atribút = 'hodnota']")

Selektor vyberie len také elementy, kde bude hodnota Attribut presne rovnaká ako daná hodnota.

Príklad:

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

výsledok:

Tvoja stránka
localhost

$ ( "[atribút! = 'hodnota']")

Selektor vyberie elementy, ktoré v danom atribúte nemajú danú hodnotu.

Pri tomto selektora dávajte obzvlášť pozor, pretože ak ho uvediete samotný, označí celú stránku. Používajte ho teda skôr ako doplňujúci selektor, napr. Za ul li.

Príklad:

$("[data-nesmysl!='69']").addClass("blue");

výsledok:

Tvoja stránka
localhost

$ ( "[atribút ^ = 'hodnota']")

Tento selektor je podobný ako ten s $, ale tu musí hodnota atribútu začínať na daný podreťazec.

Príklad:

$("[data-nesmysl^='69']").addClass("blue");

výsledok:

Tvoja stránka
localhost

$ ( "[attribute]")

Môžeme tiež vybrať len tie elementy, ktoré majú definovaný nejaký atribút, nezávisle na jeho hodnote.

Príklad:

$("[data-nesmysl]").addClass("blue");

výsledok:

Tvoja stránka
localhost

$ ( "[atribút = 'value'] [atribute2 = 'value']")

Vyššie uvedené zápisy môžeme uviesť hneď pre niekoľko atribútov.

Pokračovať budeme v nasledujúcej lekcii, Selektory v jQuery, časť druhá .


 

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é 309x (2.48 kB)
Aplikácia je vrátane zdrojových kódov v jazyku JavaScript

 

Predchádzajúci článok
Triedy v jQuery (DOM)
Všetky články v sekcii
Základy jQuery
Preskočiť článok
(neodporúčame)
Selektory v jQuery, časť druhá
Č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