Autor Zpráva
Someone
Profil
Dobrý den, udělal jsem si jednoduchý script, ale nefunguje.
 <body>
  <input type="button" onclick="zmena()" value="zmena">
    <script>
      var body = document.getElementByTagName("body");
      function zmena() {
      body.style.background = "blue";
      }
    </script>
  </body>

Nevíte kde je chyba?
Předem díky za pomoc.
Joker
Profil
Someone:
Nejspíš proto, že objekt document nemá metodu getElementByTagName. Zato má getElementsByTagName. A navíc, jak napovídá to množné číslo, nevrací jeden prvek, ale pole prvků.
Someone
Profil
Tak jak prosím dosáhnu toho abych vytáhnul pouze tag body a jeho styl?
Joker
Profil
No viz můj předchozí příspěvek. Značka body se zaměří:
document.getElementsByTagName("body")[0]
(předpokládá se, že dokument obsahuje jen jednu, což by měl vždy)
Someone
Profil
Mockrát děkuji, už to jde.
Someone
Profil
Jestli ještě můžu. Jak dostanu styl do proměnné, abych ten styl mohl využít v podmínce.
if(neco.style.color == "black")
Mi nefunguje tak jsem myslel jestli nejde udělat něco ve stylu
var styl = neco.style.color;
if (style == "black")
Witiko
Profil
Someone:
Děláš to správně, ale většinou si prohlížeč zadanou barvu převede na hex hodnoty. Možných hodnot je více a proto by se nejspíš hodil regulární výraz.:
if(/^black$|^#000(000)?$|rgba?\((\s*0\s*,?){3}(\s*\d{1,3})?\s*\)/.test(neco.style.color))
To bude fungovat na #000, #000000, black, rgb(0, 0, 0), rgba(0, 0, 0, číslo)
Chamurappi
Profil
Reaguji na Jokera:
předpokládá se, že dokument obsahuje jen jednu, což by měl vždy
Ono ani nejde normálně udělat, aby jich obsahoval víc.


Reaguji na Someone:
Nevíte kde je chyba?
Už jsi odpověď dostal, proč se ptáš znovu?
Jinak <body> je také v document.body, není nutné ho dohledávat metodou.

jak prosím dosáhnu toho abych vytáhnul pouze tag body a jeho styl?
Nevytahuj jeho styl, testuj a měň třídu (vlastnost className).
Jarda365
Profil
Mohl by tento script měnit místo barvy i obrázek..? Že by po najetí myši na odkaz(tlačítko) se změnilo i to pozadí a když by se z toho sjelo tak by se tam hodilo zase to první pozadí? Doufám že jsem to napsal nějak srozumitelně. Děkuju za rady
Someone
Profil
Mohl
Jarda365
Profil
Díky moc, už jsem na to taky přišel :)

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: