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 – 18. diel - Manipulácia s DOM v JavaScripte

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
Jurajs
Člen
Avatar
Odpovedá na tomass
Jurajs:9.12.2015 13:29

A tohle? :)

<p>Tady je nejaky text</p>

        var tag = document.getElementsByTagName("p")[0].innerHTML;
Avatar
tomass
Člen
Avatar
Odpovedá na Jurajs
tomass:9.12.2015 13:36

Jo super, ja to cetl na w3 v sekci DOM innerHTML Property a tam meli vsechny ukazky pres documentGetEle­mentById.

Avatar
Odpovedá na tomass
Michal Žůrek - misaz:9.12.2015 16:22

nejprve si musíš p definovat. Druhá chyba je způsobená tím, že getElementsBy­TagName name vrací seznam všech elementů p na stránce a těch může být víc, proto musíš označit indexem pole, který chceš měnit.

Avatar
tomass
Člen
Avatar
Odpovedá na Michal Žůrek - misaz
tomass:9.12.2015 19:08

Ok diky, ja sem to nekdy pred 3 rokama pouzival, ale od te doby sem to nevidel, tak sem si to chtel oprasit. Takze predpokladam, ze obsah treba vsech elementu muzu zmenit tak, ze si dam getElementByTag­Name("p").len­gth coz bude podminka pro velikost cyklu for a tim pak projedu vsechny elementy a pristoupim k nim podle indexu pomoci iterace.

Avatar
Michal Remišovský:6.3.2016 20:03

Vkládání před nějaký element
Čas od času se nám moc nehodí, když nám metoda appendChild() přidá element až za poslední. Existuje metoda insertBefore(), která jako první parametr příjme nový element a jako druhý element, za který se nový element vloží/přesune.

Není v článku chyba? Nemá tam být před?

Jinak díky za skvělé tutoriály :)

Avatar
Nezmar Hydra
Člen
Avatar
Nezmar Hydra:7.10.2016 3:13

snažím se přijít na to, jak si vygenorovat html kód ze scriptu.
pře innerHTML mi to jde (text a text2 je proměnná)

  • document.getE­lementById(IDec­ko).innerHTML= ("<div class=")+"pos­t"+("><h2 class=")+"title"+("><spa­n>")+text+("</span><­/h2><h3 class=")+"date"+("><span class=")+"mon­th"+(">")+tex­t2+(",-</span></h3><­/div>"); *

ale nemůžu přijít na to jak to složit přímo přes appendChild*
var trida =document.getE­lementById("Mo­jeMain3").appen­dChild(documen­t.createElemen­t("class")).class = "post";
var trida2
= trida.appendChil­d(document.cre­ateElement("clas­s")).class = "title";
trida2.appendChil­d(document.cre­ateElement("span"))­.textContent = "vnorena";*
jeden z mnoha neúspěšných pokusů.
Jde to vůbec tímto, nebo podobným způsobem?
Díky za radu

Avatar
Michal Žůrek - misaz:8.10.2016 0:08

dá se to takovýám způsobem (takovým způsobem se dá úplně všechno). Pokud potřebuješ s něčím pracovat víc než 1× (např vytvořit element + nastavit mu class + nastvit mu obsah = 3 akce) musíš si ho uložit do proměnné.

var el = document.getElementById(IDecko);
var div = document.createElement("div");
div.classList.add("post");
var title = document.createElement("h2");
title.classList.add("title");
var titleSpan = document.createElement("span");
titleSpan.textContent = text;
var datum = document.createElement("h3");
datum.classList.add("date");
var month = document.createElement("span");
month.classList.add("month");
month.textContent = text2;
el.appendChild(div);
div.appendChild(title);
div.appendChild(datum);
title.appendChild(titleSpan);
datum.appendChild(month);
Avatar
Nezmar Hydra
Člen
Avatar
Odpovedá na Michal Žůrek - misaz
Nezmar Hydra:8.10.2016 1:39

Děkuji. To už jsem pořešil ochotně poradil mi ve fotu Ján Timoranský. Nejvíc zapečenej pes byl v tom, že jsem neustále používal blbě element.clas ="jgjhg" místo element.clasName = "fgdf". Jak mě natrk tak už jsem na to přišel. A pak mi ještě napsal kódik, ze kterýho jsem pochopil další niance. a udělal to taklenc:

function NewBody (IDecko,Hlavic­ka,Datum,Telo){
var post = document.crea­teElement("div");
var title = document.crea­teElement("h2");
var date = document.crea­teElement("h3");
var story = document.crea­teElement("div");

post.className = "post";
title.className = "title";
date.className = "date";
story.className = "story";

document.getE­lementById("ma­in").appendChil­d(document.cre­ateElement("ID"))­.id = (IDecko);
var element = document.getE­lementById(IDec­ko).appendChil­d(post);

element.appen­dChild(title)­.appendChild(do­cument.create­Element("span"))­.textContent= (Hlavicka);
element.appen­dChild(date).ap­pendChild(docu­ment.createEle­ment("span"))­.textContent= (Datum);

element.appen­dChild(story)­.appendChild(do­cument.create­Element("p"))­.textContent= (Telo);

}

Editované
Avatar
Jirka
Člen
Avatar
Jirka:22.11.2016 11:45

Ahoj mám problém, nezobrazuje se mi ani podle návodů zde kód:

var tag = document.getElementsByTagName("p")[0].innerHTML;
document.write(tag);

nic mi to nedělá, dále se chci zeptat, jestli má vliv, když mám externí soubor .js odkazovaný v <head> než když dám script pod <body>?

Děkuji

J

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é 10 správy z 116.