Autor | Zpráva | ||
---|---|---|---|
nox Profil * |
#1 · Zasláno: 2. 3. 2009, 21:33:35
mám takový kód...
<script type="text/javascript"> function zvyrazni(n){ var radek, sloupec, el; for (radek = 1; radek <= 10; radek++) { for (sloupec = 1; sloupec <= 10; sloupec++) { if (radek*sloupec == n){ el = document.getElementById(radek+'_'+sloupec); return el; } } } } </script> document.write("<td id=\""+radek+"_"+sloupec+"\" onclick=\"alert('Kliknuto na " + zvyrazni(hodnota) +"'\);\">"+hodnota+"</td>"); el = document.getElementById(radek+'_'+sloupec).value; |
||
DJ Miky Profil |
#2 · Zasláno: 2. 3. 2009, 21:37:23
el = document.getElementById(radek+'_'+sloupec).innerHTML; |
||
nox Profil * |
#3 · Zasláno: 2. 3. 2009, 22:04:40
dík :) to mi tu hodnotu získá, ale když mám tabulku třeba 10x10 tak mi to skončí na 5ti prvcích :(
|
||
nox Profil * |
#4 · Zasláno: 2. 3. 2009, 23:55:40
nezbývá mi než jsem dát větší část kódu... takže mám něco takového...
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=windows-1250"> <meta name="generator" content="PSPad editor, www.pspad.com"> <title></title> </script> <script type="text/javascript"> function zvyrazni(n){ var radek, sloupec, el; for (radek = 1; radek <= 10; radek++) { for (sloupec = 1; sloupec <= 10; sloupec++) { el = document.getElementById(radek+'_'+sloupec).innerHTML; if((n % el) == 0){ var styl = document.getElementById(radek+'_'+sloupec); styl.style.borderBottom="1px solid white"; } else{ var styl = document.getElementById(radek+'_'+sloupec); styl.style.textDecoration="none"; } } } return n; } </script> </head> <body> <table> <script type="text/javascript"> var radek, sloupec; for (radek = 1; radek <= 10; radek++) { document.write("<tr>"); for (sloupec = 1; sloupec <= 10; sloupec++) { var hodnota = radek*sloupec; if (radek == 1 || sloupec == 1) document.write("<th id=\""+radek+"_"+sloupec+"\">"+hodnota+"</th>"); else document.write("<td id=\""+radek+"_"+sloupec+"\" onclick=\"alert('Kliknuto na " + zvyrazni(hodnota) +"'\);\">"+hodnota+"</td>"); } document.write("</tr>"); } </script> </table> </body> </html> nevíte, prosím, někdo, proč se mi nevykresluje celá tabulka? Když zakomentuju obsah 2.foru ve funkci zvyrazni, tak se tabulka vykresli cela, ale zase nedoplňuje styl... Prosím o pomoc |
||
Kajman_ Profil * |
#5 · Zasláno: 3. 3. 2009, 08:38:53
Funkci zvyrazni voláte ještě dřív, než máte tabulku sestavenou... tedy ke každému td, které však neexistují. Asi ji chcete volat až po kliknutí...
document.write("<td id=\""+radek+"_"+sloupec+"\" onclick=\"window.alert('Kliknuto');zvyrazni("+hodnota+");\">"+hodnota+"</td>"); Další chyby může způsobovat to, že id nesmí začínat číslicí. |
||
Kajman_ Profil * |
#6 · Zasláno: 3. 3. 2009, 08:40:07
Místo amp #39 má být jednoduchý apostrof.
|
||
nox Profil * |
#7 · Zasláno: 3. 3. 2009, 09:06:50
děkuji Vám, to byl ten problém
|
||
Chamurappi Profil |
#8 · Zasláno: 3. 3. 2009, 10:34:45
Reaguji na Kajmana:
„Další chyby může způsobovat to, že id nesmí začínat číslicí.“ Pokud vím, tak to nikdy žádnému prohlížeči nevadilo. „Místo amp #39 má být jednoduchý apostrof.“ V hodnotách atributů se entity překládají, takže ' poběží. |
||
_es Profil |
#9 · Zasláno: 3. 3. 2009, 12:43:06 · Upravil/a: _es
nox
Do document.write môžeš dať aj viac argumentov a efekt bude rovnaký, ako keď bude argument len jeden poskladaný reťazec z tých argumentov. V riadku 39 nastane chyba, lebo prvok s takým id (ešte) neexistuje. Ak sa definuje onclick priamo v <TD>, tak sa dá na ten prvok <TD> odkázať pomocou this a všetky vlastnosti toho prvku sú zároveň lokálnymi premennými. Napríklad: <TD onclick="alert(this.innerHTML)">nejaký text</TD> alebo aj <TD onclick="alert(innerHTML)">nejaký text</TD> <TD onclick="nejaka_funkcia(this)">nejaký text</TD> |
||
Časová prodleva: 15 let
|
0