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
Odpovedá na Jirka
Michal Žůrek - misaz:22.11.2016 12:24

chyba může být na spoustě míst, zmáčkni F12 a podívej se jestli v konzoli není nějaký error. Předpokládám, že se snažíš načíst element P když ještě není načtený. Popis najdeš v některém z úvodních dílů včetně odpovědi na otázku, kde je nejlepší mít umístěn element script.

Avatar
Jirka
Člen
Avatar
Odpovedá na Michal Žůrek - misaz
Jirka:22.11.2016 12:34

Děkuji, jednoznačnou odpověď, kam psát script jsem zatím nedohledal, možná: "Skripty se někdy alternativně vkládají také těsně před </ body>. U větších aplikací bychom si na javascriptové soubory měli ideálně vytvořit nějakou složku, nabízí ze názvy skripty, scripts, js a podobně.", což mi úplně oči neotevřelo.
Script funguje, pokud ho vložím do těla HTML dokument pod text, avšak kód:

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

mi nevrátí dle tutoriálu mi nevrátí text: "<span>Hello</span>wor­ld", ale " Helloworld".

Poslední dotaz je obecně ke getElement(s), v případě, že objektu přidám např. třídu "haha"

var tag = document.getElementsByClassName("haha");
document.write(tag);

tak mi vypíše [object HTMLCollection], je tedy nutné vždy upřesnit(.inner­HTML, .textContent)?

Omlouvám se za možná stupidní dotazy, avšak z článku to není dost zřejmé nebo jsem to nepochopil :-|

Děkuji

Jirka

Avatar
Michal Žůrek - misaz:22.11.2016 19:41
var tag = document.getElementsByTagName("p")[0].innerHTML;
document.write(tag);

ve skutečnosti vrátí <span>Hello</span>wor­ld
, akorát jak ho to vloží do dokumentu, tak to prohlížeč začne interpretovat a ty značky tam nejdou vidět.

document.getElementsByClassName("haha");

vrací kolekci elementů. Kolekci elementů nemůžeš takhle vypsat. Pokud se učíš s DOM doporučuji zapomenout že existuje nějaká prokletá metoda document.write a skutečně to udělat přes DOM. ty souvislosti si tam víc uvědomíš.

Avatar
Lenka
Tvůrce
Avatar
Lenka:12.6.2017 21:39

Tak nevim, ale to p.innerHTML nefunguje. Leda
document.getE­lementsByTagNa­me("p")
alert(p[0].in­nerHTML)
pak zobrazi obsah elementu

A taky jsem nasla
http://www.ivt.mzf.cz/…javascriptu/
se stejnym obsahem

Ze by stejny autor?

Avatar
Lenka
Tvůrce
Avatar
Lenka:12.6.2017 21:42

Oprava, skoda, ze uz to nejde editovat
var p=document.ge­tElementsByTag­Name("p")
//v p jsou ulozeny vsechny odstavce indexovany od 0
alert(p[0].in­nerHTML)
//obsah prvniho

Avatar
Odpovedá na Lenka
Michal Žůrek - misaz:12.6.2017 21:51

ahoj, ukázka kódu předpokládá, že v proměnné p je již nějaký elment načtený libovolnou z výběrových metod (viz. výše v článku).

Děkuji také za upozornění na plagiát. Jsem originálním autorem článku. Gymnázium (nebo někdo kdo se tak vydává) je "uwarezil" a budu to řešit.

Avatar
Lenka
Tvůrce
Avatar
Lenka:12.6.2017 22:15

No pri tomto zapisu by to fungovalovo jen pro getElementById, kde p by mel patricne id, protoze getElements... vraci jako vysledek oindexovane objekty, kdezto v prvnim pripade je jen jeden mozny odstavec.

Hodne stesti pri reseni, se mi v zivote jeste nepovedlo nic z takovych a podobnych ustrku vyresit.

Avatar
Karel Chrobák:1.1.2018 21:14

Ahoj, prosím o navedení na správnou cestu...
Mám seznam států a jejich popis. Názvy států jsou viditelné, ale jejich popis je ve výchozím stavu skrytý. Pokud klepnu na název státu, zobrazí se mi jeho popis. Tzn. klepnutím na název státu si s getElementById vyhledám příslušné pole s popisem a s setAttribute vložím do pole style="displa­y:block". To mi zobrazí popis státu. Dál už ale tápu. Pokud klepnu na další název státu, zobrazí se mi sice příslušný blok s popisem, ale ten původní zůstane zobrazen, protože tam je stále vložen style="displa­y:block". Jak bych to měl udělat, aby se mi při klepnutí na další stát skryl popis předchozího, tedy aby se z něj opět odebral atribut style="..."?
Děkuji

Odpovedať
Stále se učím a stále toho vím míň a míň.
Avatar
Jiří Fencl
Člen
Avatar
Odpovedá na Karel Chrobák
Jiří Fencl:1.1.2018 21:32

Misto nastavovani primo style nastavuj unikatni tridu, skryvani vyres pres CSS definici te tridy, pak pri kliku vyhledej elementy s danou tridou, tu odstran a pridej jen aktivnimu popisku

Avatar
Odpovedá na Karel Chrobák
Michal Žůrek - misaz:2.1.2018 9:04

buď to udělej přes třídu jak radí Jiří Fencl nebo prostě použil cykl a všechny nejprve vresetuj na display:none a teprve pak ten jeden na display:block

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.