Pomohl Vám můj web?
Podpořte psaní dalších článků!

jQuery-návod.cz - vše okolo jQuery - jQuery UI, pluginy a další




(6) Úprava prvků

Co všechno lze upravit?

Pomocí jQuery lze upravit v podstatě všechno, co vás napadne. Lze měnit obsah, přidávat a odebírat třídy (class), upravovat atributy (např. barvu, velikost...) a třeba i hodnotu inputu a samotný HTML kód.

Úprava obsahu

Nejdříve uvedu příklad, jak pomocí jednoduché funkce text() získáme obsah divu a nahradíme ho jiným textem.

// HTML část                                                   
<div id="odstavec">
Tady je text, který se bude nahrazovat. Pro jistotu ho uložíme do promenné puvodniText, kdybychom ho chtěli vrátit
</div> 

// jQuery část
var puvodniText = $(#odstavec).text();  // do proměnné puvodniText jsme uložili text z odstavce
// při prvním použití proměnné se před ní píše var, později už ne
var novyText = "Toto je nový text, který vložíme do odstavce"; // do proměnné novyText jsme uložili text
$(#odstavec).text(novyText); // a teď jsme nahradili původní text novým textem

Tady je text, který se bude nahrazovat. Pro jistotu ho uložíme do promenné puvodniText, kdybychom ho chtěli vrátit

Ukázka myslím není potřeba, ale pokud jí chcete, napište mi! Další funkce najdete v přehledu.

  • html() - získání HTML obsahu
  • html(hodnota) - nastavení HTML obsahu
  • append(obsah) - připojení HTML obsahu za každý vybraný prvek
  • prepend(obsah) - připojení HTML obsahu před každý vybraný prvek
  • appendTo(selektor) - připojí za každý vybraný element obsah prvku, který je v závorce
  • prependTo(selektor) - připojí před každý vybraný element obsah prvku, který je v závorce
  • after(obsah) - přidá text na konec vybraných prvku
  • before(obsah) - přidá text před vybrané prvky
  • wrap(HTML) - obalí vybrané prvky HTML obsahem
  • wrap(element) - obalí všechny vybrané prvku určeným elementem
  • unwrap(element) - odstraní rodiče prvku, samotný prvek a jeho vlastnosti zanechá
  • replaceWith(obsah) - nahradí všechny vybrané prvku HTML nebo DOM obsahem
  • replaceAll(selektor) - nahradí všechny prvky v závorce obsahem
  • clone() - zkopíruje vybrané prvky, používá se třeba s prependTo

Třída - class

Na úpravu třídy poskytuje jQuery dokonce několik funkcí. Co všechno dovedou, uvidíte v následujícím přehledu.

  • addClass(class) - přidá třídu
  • removeClass(class) - odebere třídu
  • hasClass(class) - zjistí, jestli vybraný prvek má určitou třídu
  • toggleClass(class) -  pokud prvek určitou třída má, tak jí odebere a naopak
  • toggleClass(class, switch) - když je switch lež(false), tak se třída odebere a naopak. Obvykle se využívá v kombinaci s událostmi.

Jak se s těmito funkcemi pracuje, uvidíte v následujícím kódu.

// HTML část
<div id="odstavec">
Text v odstavci             
<span>Text v spanu 1 </span>

<span>Text v spanu 2</span>

</div>

// CSS část
.cervena {
     color: cervena;
}
.italic {
     font-style: italic;
}
.tucne {
     font-weight: bold;                                                   
}
.podtrzena {
     font-decoration: underline;
}

//jQuery část
$("#odstavec").addClass("cervena"); // pridá odstavci trídu cervena, kterou ale musíme, stějne jako všechny ostatní třídy, nadefinovat pomocí CSS
$("#odstavec span:first").addClass("italic"); // přidá prvnímu spanu v odstavci třídu italic
var maTridu = $("span").hasClass("italic");   // do proměnné maTridu uloží informaci o tom, jestli nekterý prvek span má trídu italic
if(maTridu == true)       // jestli některý prvek span má třídu italic
// když proměnná maTridu je pravda, == porovnání dvou prvků, if - podmínka
{
    $("span").removeClass("italic").addClass("tluste"); // tak všem prvkům span odebere třidu italic a přidá jim třídu tluste     
}
if (maTridu == false) // ale když žádný prvek span neobsahuje třídu italic
{
    $("odstavec").addClass("podtrzena");
}

Kód je myslím dostatečně komentovaný, takže si asi dokážete představit, co se stane.

Atributy

Dále lze upravovat atributy. Atributy jsou v podstatě vlastnosti prvků, např. barva, velikost, zdroj obrázku a všechny ostatní CSS vlastnosti. Pro úpravu atributů jQuery nabízí opět několik funkcí, které jsou v tomto přehledu:

  • attr(name) - získání hodnoty atributu vybraného prvku, ale pouze jednoho elementu
  • attr(properties) - nastavení, popř. získání, hodnoty atributu (popř. i více atributu) všech vybraných prvku
  • attr(key, value) - jednoduché nastavení atributu u všech vybraných prvků
  • removeAttr(name) - smaže hodnotu atributu u všech vybraných prvků
  • attr(key, fn) - první parametr je název a hodnota atributu a druhý je callback funkce

// HTML část
<div id="odstavec" lang="cs"></div>     

// jQuery část
var jazykTextu =  $("#odstavec").attr("lang");
$("#odstavec").text("Jazyk odstavce je " + jazykTextu + ".");
$("#odstavec").attr({lang:cs, name:jmeno});
jazykTextu =  $("#odstavec").attr("lang");  // všimnete si, že var se píše pouze pri prvním použití proměnné a 
// aby hodnota v promenné byla aktuální, musíme znova získat hodnotu

var jmenoTextu = $("#odstavec").attr("name"); 
$("#odstavec").after("Ted je jazyk " + jazykTextu + " a jmeno je " + jmenoTextu + "."); // přidá na konec textu
$("#odstavec").removeAttr("lang"); 
$("#odstavec").after("A ted jsme smazali atribut lang.");
$("#odstavec").attr({lang:cs}, callbackFunkce);  // po zmeně barvy na "cs" se zavolá callback funkce

function callbackFunkce() { // při definování fce se píše function, název funkce a parametry
      $("#odstavec").after("Tento text vypsala callback funkce");   // změna barvy na žlutou
}  

Zobrazit diskuzi