Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – 2. diel - Vkladanie obsahu v jQuery (DOM)

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
Odpovedá na Honza Bittner
David Koníček:19.12.2017 13:01

Chce to opravit i ten příklad, protože takhle nebude fungovat tak jak má ;) Ale jinak pěkný díl ;)

Odpovedať
Věř, běž a dokážeš!
Avatar
Honza Bittner
Tvůrce
Avatar
Odpovedá na David Koníček
Honza Bittner:19.12.2017 13:06

Dohromady to bude nějak takto. Popisky (myslím ty věty nad kódy) jsou IMO dobře. Jen ty vysvětlení nahoře byla špatně.

Viz (po úpravě, která čeká na schválení):

A.after(B) - vloží B po A – A je cíl, B je obsah pro vložení

Zkusíme si tedy přidat po #vkladani .one div, který bude obsahovat "Ahoj, jsem vložený přes After". Divu přidáme ještě ID, jelikož s ním budeme pracovat dále.

$('#vkladani .one').after("<div id='pres_after'>A­hoj, jsem vložený přes <b>.after()</b></d­iv>");


A.insertAfter(B) - vloží A po B – B je cíl, A je obsah pro vložení

Super, funguje to. Hned za #vkladani .one se nám vložil náš div. Teď zkusíme náš #pres_after vložit za #vkladani .two.

$('#pres_after')­.insertAfter( $('#vkladani .two') );

Odpovedať
FIT ČVUT alumnus :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/tenhobi/ama.
Avatar
Robin Mokrý
Člen
Avatar
Robin Mokrý:1.8.2018 12:20

Dobrý den,
jsem jQuery úplný začátečník a mám takový možná hloupý dotaz.

$('#vkladani .three').appen­d("<b>Ahoj, já jsem APPENDED</b>");
$("<i>Ahoj, já jsem APPENDEDTO</i>")­.appendTo('#vkla­dani .three');
$($('#vkladani .two').html())­.appendTo($('#vkla­dani .three'));

Jaký mají v tomto případě vlastně význam $?
Proč na prvním a třetím řádku před #divem znak $ je a na druhém řádku tam není? Pokud ho tam vložím, funguje to navíc stejně.

Děkuji za odpověď.

Editované
Avatar
Zdeněk Jeřábek:16.11.2021 15:42

Dosti nepřehledné, v ukázkách se téměř nic nemění a naprosto chybí nějaký konkrétní příklad, proč bychom něco takového vůbec chtěli dělat.

Avatar
Marcel Sup
Člen
Avatar
Marcel Sup:20.1.2022 17:00

Nezdá se mi relevantní ukázka (výsledek), která dokumentuje funkci insertAfter(). Je naprosto totožná s předchozí ukázkou, která dokumentuje funkci after() - tam je to v pořádku a souhlasí to, ale u té funkce insrtAfter() mám o ukázce, která má dokumentovat výsledek po použití funkce, velké pochybnosti.

Avatar
Petr Svoboda
Člen
Avatar
Petr Svoboda:4.2.2022 0:29

Kód uvedený v této lekci nefunguje. Resp. fugnuje, ale pouze v jQuery verzi 1.10.2, která je použita ve vzorovém řešení ke stažení.
S touto verzí .unwrap('<arti­cle></article>') funguje.

Nám ale bylo v 1. lekci řečeno, abysme používali verzi 3.2.1 a to už .unwrap('<arti­cle></article>') nefunguje.
A co je horší, nefungují pak ani následující příkazy wrapAll a wrapInner. To vůbec nechápu proč a byl bych rád, aby někdo vysvětlil jak může jeden nefunkční příkaz na nějakém prvku (Ahoj, jsem vložený přes .before) zcela znefunkčnit následující příkazy, které se týkají úplně jiných prvků.

Libor Sitek výše navrhuje použít .unwrap($('<ar­ticle></article>')). To je ovšem pseudořešení. Ve skutečnosti to tagy <article></article> vůbec neodstraní. Ale způsobí to, že začnou fungovat následující příkazy wrapAll a wrapInner, takže výsledek pak vypadá přibližně stejně, jako ve vzorovém řešení (ne však úplně stejně).

Autor kurzu by měl ukázat, jak požadovaného výsledku dosáhnout s aktuální verzí jQuery.

Avatar
Odpovedá na Petr Svoboda
Jaroslav Drobek:12.5.2022 21:21

Když to vezmu zčerna: kdoví, jestli po tolika letech autor ještě je...přemýšlím, co jsem já dělal před 5, 10 lety 😨

Avatar
Jaroslav Drobek:12.5.2022 21:25

Hodnocení:

  • prepend(): vidím ještě jeden rozdíl - připojením vznikly dva sloupce, zatímco u append() se připojovalo do původního sloupce.
  • Příklad na insertAfter() je zmatečný: používá se řetězec s obsahem demonstrujícím after() a je zařazen nesprávný výsledek (totožný s výsledkem after()).
  • Jaká změna by měla být vidět na výsledku použití wrap()? Bez dlouhého zírání ho vidím jako identický s předchozím; totéž u příkladů na unwrap() a wrapAll()..
Avatar
Lubor Pešek
Člen
Avatar
Lubor Pešek:24.6.2022 14:35

Trošku nechápu jednu věc.
Když se zamýšlím, jak asi ten wrapper funguje, tak předpokládám, že stejně pracuje nějak s tím textem, který mu tam vložíme jako parametr. Díky tomu, že je možné tam vložit i několik tagů najednou, tak nechápu, na co je tam potřeba jednak ta syntaxe špičatých závorek a hlavně párový tag.
Když už taková funkce existuje, tak proč nepsat jednoduše pouze názvy těch tagů? (v podstatě to samé, co v JS existuje při vytváření elementu).

//Píšu přece:
document.createElement("tag");
//Nepíšu:
document.createElement("<tag></tag>");

//Tak podobná syntaxe by v podstatě mohla fungovat i tady, nebo ne?
//Místo:
$("#idElementu").wrap("<div></div>");
//napsat
$("#idElementu").wrap("div");
//to samé i pro vnořování a bylo by to hezké, že by to bral jako parametry (nemusel by nic splitit)
$("#idElementu").wrap( "div", "div", "p" "em" "b" );

Ale to je spíš asi pro autora této funkce.

Odpovedať
Existují dva způsoby, jak vyřešit problém. Za prvé vyhoďte počítač z okna. Za druhé vyhoďte okna z počítače.
Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 9 správy z 29.