Avatar
Nezmar Hydra
Člen
Avatar
Nezmar Hydra:7.10.2016 12:12

Nemohu přijít na to jak jak použít appendChild.
Zkoušel jsem to v mnoha podobách, ale nikdy mi nezafungovalo formátování pomocí css vždycky se mi maximálně vypíše text.

var mainko= document.crea­teElement("ID");
var trida = document.crea­teElement("clas­s");
var trida2 = document.crea­teElement("clas­s");
var hacko = document.crea­teElement("span");

mainko.id = "MojeMain3";
trida.class = "post";
trida2.class = "title";
hacko.span="span";
document.getE­lementById("ma­in").appendChil­d(mainko);
document.getE­lementById("Mo­jeMain3").appen­dChild(trida)­.appendChild(tri­da2).appendChil­d(hacko).textCon­tent ="ghghghgfhd";

Nakonec jsem to pořešil přes innerHTML, ale myslim, že musí bejt elegantnější cesta. Můžete někdo poradit?
Teprve začínám, přečetl jsem si tutoriály a laboruju. Děkuju za rady.

Editováno 7.10.2016 12:13
 
Odpovědět 7.10.2016 12:12
Avatar
Nahoru Odpovědět 7.10.2016 16:34
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Ján Timoranský
Redaktor
Avatar
Ján Timoranský:7.10.2016 16:36

Chceš akože elementu nastaviť classu cez kód? Skús použiť .className na element? Ak som zle pochopil otázku tak skús lepšie špecifikovať, čo potrebuješ.

element.className += " " + newClassName;
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět  +1 7.10.2016 16:36
Find what you love and let it kill you.
Avatar
Nahoru Odpovědět  -1 7.10.2016 16:46
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Odpovídá na Nezmar Hydra
Libor Šimo (libcosenior):7.10.2016 17:12

Najlepšie je to riešiť cez jQuery, príklad máš vyššie.

Nahoru Odpovědět  -1 7.10.2016 17:12
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Marian Benčat
Redaktor
Avatar
Odpovídá na Libor Šimo (libcosenior)
Marian Benčat:7.10.2016 19:42

Pardon za minuska.. ale kvuli naprosto primitivnimu pridani classy elementu OPRAVDU NELINKUJEME KNIHOVNU

Ján dává správné řešení.

Nahoru Odpovědět 7.10.2016 19:42
"C# 3.0 (2007) volal Java 8 (2014), že chce svoje featury zpět"
Avatar
Nezmar Hydra
Člen
Avatar
Odpovídá na Ján Timoranský
Nezmar Hydra:7.10.2016 22:14

Děkuji za rychlé reakce. Jestli jsem špatně vysvětlil problém tak se omlouvám.
Jedná se mi o to, že pořebuju vlastně tohle

<div id="example" class="post">
<h2 class="title">id "nadpis"</h2>
<h3 class="date">id "datum"</span></h3>
<div class="story">id " textt"</div></div>
abych to mohl generovat z javy a vkládat texty, tak aby bylo zachováno formátování CSS.

vyřešil jsem to takhle :
document.getE­lementById(IDec­ko).innerHTML= ("<div class=")+"pos­t"+("><h2 class=")+"title"+("><span id=")+Hlavicka+("></span­></h2><h3 class=")+"date"+("><span class=")+"mon­th"+("></span><span id=")+datum+("></spa­n></h3><div class=")+"sto­ry"+("><p id=")+Telo+("></p></­div></div>");

Funguje to, jen mám pocit, že to není úplně správné řešení a mělo by to jít vytořit právě pomocí objektu a appendChild(). Je to tak?

 
Nahoru Odpovědět 7.10.2016 22:14
Avatar
Ján Timoranský
Redaktor
Avatar
Odpovídá na Nezmar Hydra
Ján Timoranský:7.10.2016 23:20

Skúsil som dať niečo dohromady na JSFiddle . Určite sa to dá urobiť lepšie a efektívnejšie, no na ukážku a porozumenie to podľa mňa postačí. Pre každý element si zadefinuješ premennú, ktorej iba cez metódy pridáš ID, classu a obsah.

Nahoru Odpovědět  +1 7.10.2016 23:20
Find what you love and let it kill you.
Avatar
Nezmar Hydra
Člen
Avatar
Nezmar Hydra:7.10.2016 23:46

Velice děkuji, teď jsem se s tím dopral skoro sám. Natrklo mě jak si napsal className
já psal
trida.class = "post";
trida2.class = "title";
a stačilo
trida.className = "post";
trida2.className= "title";
a už jsem věděl že jsem kde chci bejt.
Děkuju moc.

 
Nahoru Odpovědět  +1 7.10.2016 23:46
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 9 zpráv z 9.