Autor Zpráva
Filipos
Profil
Zdravim,

ucim se principy JS a zkousim obarvovat text pomoci JS. Mam skript, ale nechapu, proc se musi psat uvozovky pred a za +barva+ a ty pluska taky nechapu.
Dokazal by mi to nekdo polopate vysvetlit? Napada me jen, ze se argument funkce(tedy barva) musi psat do uvozovek, proc tam ale jsou ty pluska, kdyz je ten argument(barva) uvnitr HTML tagu <font>?

muj kod:

   <script language="javascript">
   
   function barevny_text(barva)
   {
    document.write("<font color='"+barva+"'>" + "Ahoj napsano cervene" + "</font>");
   }
   
   barevny_text("red");
   
   </script>

Jde mi tedy o to "+barva+" mezi apostrofy.

Predem diky, Filip
Chamurappi
Profil
Reaguji na Filipose:
Plusem se spojují řetězce. Z "a" + "b" vznikne "ab", z "<font color='"+barva vznikne "<font color='red", pokud je v proměnné barva řetězec "red".
Joker
Profil
Filipos:
Tak se v JavaScriptu zapisují řetězce. Přečtěte si kdyžtak nějakou učebnici JS.
Filipos
Profil
Chamurappi:
Chapu ze se plusem spojuji retezce( mam tam spojeny ty retezce "<font .....>" + "Ahoj napsano cervene" + "</font>". Znamena to tedy, ze uvnitr retezce "<font>" je dalsi retezec?
Edit:
Proc ten HTML tag nema parametr, kterej je jen v jednech uvozovkach, v mym pripade tedy apostrofech, jako se to pise v HTML?(Vypadalo by to takto: "<font color='barva'>")


Joker:
prave ctu jednu ucebnici a podobny priklad je v ni. Nenasel jsem tam ale proc uvnitr retezce"<font.....>" je dalsi retezec, ktery je tvoren argumentem funkce a je pred nim "+ a za nim +". To stale nechapu.
Kajman
Profil
"<font color='" je jeden řetězec a "'>" je další řetězec
Joker
Profil
Filipos:
Nenasel jsem tam ale proc uvnitr retezce"<font.....>" je dalsi retezec, ktery je tvoren argumentem funkce a je pred nim "+ a za nim +"

Ale tak to není.

Na nejvyšší úrovni jde o volání metody document.write. Argumentem metody je výraz: "<font color='"+barva+"'>" + "Ahoj napsano cervene" + "</font>"

Operátor + použitý na řetězce v JavaScriptu znamená spojení řetězců. Ve výrazu máme čtyři operátory +, které se vyhodnocují zleva doprava, takže vyhodnocení bude probíhat nějak takto:
Nejdřív "<font color='" + barva, takže se spojí uvedený řetězec s hodnotou proměnné barva a když ta hodnota je "red", vznike: "<font color='red"
Další + k výsledku připojí "'>", tedy vznikne "<font color='red'>"
Další + k výsledku připojí "Ahoj napsano cervene", zvnikne "<font color='red'>Ahoj napsano cervene"
Další + k výsledku připojí "</font>", vznikne "<font color='red'>Ahoj napsano cervene</font>" - tohle je konečný argument volání document.write.
Filipos
Profil
Diky moc, pochopeno :)

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: