NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Mezi 13:00 až cca 15:00 proběhne odstávka sítě z důvodu aktualizace. Web bude po celou dobu nedostupný.

Diskuze – Lekce 18 - Manipulace s DOM v JavaScriptu

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Jurajs
Člen
Avatar
Odpovídá na tomass
Jurajs:9.12.2015 13:29

A tohle? :)

<p>Tady je nejaky text</p>

        var tag = document.getElementsByTagName("p")[0].innerHTML;
 
Odpovědět
9.12.2015 13:29
Avatar
tomass
Člen
Avatar
Odpovídá 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.

 
Odpovědět
9.12.2015 13:36
Avatar
Odpovídá 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.

 
Odpovědět
9.12.2015 16:22
Avatar
tomass
Člen
Avatar
Odpovídá 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.

 
Odpovědět
9.12.2015 19:08
Avatar
Odpovídá na tomass
Michal Žůrek - misaz:9.12.2015 19:18

přesně tak.

 
Odpovědět
9.12.2015 19:18
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 :)

 
Odpovědět
6.3.2016 20:03
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

 
Odpovědět
7.10.2016 3:13
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);
 
Odpovědět
8.10.2016 0:08
Avatar
Nezmar Hydra
Člen
Avatar
Odpovídá 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);

}

Editováno 8.10.2016 1:41
 
Odpovědět
8.10.2016 1:39
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

 
Odpovědět
22.11.2016 11:45
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 111.