použití document.GetElementByID()

Webdesign, HTML, CSS, Flash, PHP, ASP, .NET, JavaScript. Kritika www stránek na Smetišti.

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod Clicker 18. 1. 2012 10:14

Dobrý den, mám kod:
Kód: Vybrat vše
<html>
  <head>
  <script> 
var ukaz = document.getElementById("Ja");
</script>
  <title></title>
  </head>
  <body>
    <span id='Ja'><script>document.write(ukaz)</script></span>
  </body>
</html>


Co by mělo být v proměnné? Nyní je tam null (to se mi i ukáže). Nemělo by tam být "span"?
Děkuji za odpověď
Clicker
Junior

Odeslat příspěvekod kernel_panic [passed] 18. 1. 2012 10:23

pokud chceš zobrazit slovo "span", musíš použít:

Kód: Vybrat vše
var ukaz = document.getElementById("Ja").tagName;
k bití internetovejch nihilistů jsem už příliš starej, ale za ty roky mně narostl krunýř, o kterej se vždy báječně rozplácnete; takže, mám zůstat čelem nebo?
kernel_panic [passed]
Přeborník Živě roku 2008
Uživatelský avatar

Odeslat příspěvekod Clicker 18. 1. 2012 11:14

Aha díky. Co to tedy znamená ten kus kodu "document.GetElementByID"?
Tím si jen najdu(označím) blok např. div,p,span a td ve kterým je id shodný s tím co je v závorce při příkazu document.GetElementByID()?

A co tedy najdu pod tímto příkazem? Id Toho bloku?
document.GetElementByTagName()?

Moc děkuji za odpověďi
Clicker
Junior

Odeslat příspěvekod K8 18. 1. 2012 11:39

K8
Pokročilý

Odeslat příspěvekod czechian 18. 1. 2012 11:45

Zjednodušeně: getElementById vrací volaný kus HTML jako objekt s některými užitečnými metodami.

Pozor na oblíbenou chybu. Obdobná funkce pro třídy a názvy tagů má název vždy v množném čísle, tedy getElementsBy, protože tyto funkce nevracejí jeden objekt, ale celé pole objektů, a to i v případě, že naleznou jen jeden výskyt.
czechian
Junior

Odeslat příspěvekod gandor 18. 1. 2012 12:57

Este jedna malickost, na ktoru tu nikto neupozornil a aj dovod, preco ti premenna ukaz vypisuje NULL a nie OBJECT...
Javascript sa vykonava v stadiu, kedy je zavolany. No a ty volas document.getElementById este na mieste, kde element s ID "ja" neexistuje. Preto sa ziaden taky element ani nenajde a dostanes naspet hodnotu NULL...
Pokial chces zavolat podobne skripty az po nacitani celeho dokumentu, tak najlahsie, co mozes spravit je
a, do body elementu dat event onload a s neho pustat kod (neodporuca sa - skripty sa ti pustia az po nacitani celej stranky, vratane doloadovania vsetkych obrazkov - co moze trvat aj niekolko sekund - pocas ktorych uzivatel robi svoje akcie)
b, dat to na spodok stranky - vsetko nadtym je uz loadnute a tak by ti to teoreticky malo najst vsetky elementy (neodporuca sa - ide o take spinave, aj ked funkcne riesenie. V praxi sa casto pouziva)
c, vytvorit si vlastnu funkciu, ktora zistuje stav nacitania a po docitani spusti pozadovane veci (neodporucam, pretoze ide o narocnu zalezitost, ktora ked sa nespravi dobre tak sa pozadovane funkcie nemusia nacitat, alebo mozes mrhat vykonom PC a podobne)
d, pouzit nejaku kniznicu (napr. jquery), ktora ma toto uz vyriesene...
gandor
Mírně pokročilý


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků