| Autor | Zpráva | ||
|---|---|---|---|
| nox Profil * |
#1 · Zasláno: 3. 3. 2009, 19:06:05
ahoj nevěděl by, prosím, někdo, proč mi daný kód při kliknutí na 10 podtrhne i násobky deseti v posledním řádku, ale při kliknutí přeba na 40 mi 80, jako násobek 40 nepodtrhne?
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=ISO-8859-2" http-equiv="content-type">
<link rel="stylesheet" type="text/css" href="style1.css">
<script type="text/javascript">
function zvyrazni(n){
var radek, sloupec, el;
for (radek = 2; radek <= 10; radek++) {
for (sloupec = 2; sloupec <= 10; sloupec++) {
if (radek != 1 || sloupec != 1){
el = document.getElementById(radek+'_'+sloupec).innerHTML;
if((el % n) == 0){
var styl = document.getElementById(radek+'_'+sloupec);
styl.style.borderBottom="1px solid blue";
}
else{
var styl = document.getElementById(radek+'_'+sloupec);
styl.style.borderBottom="1px solid green";
}
}
}
}
return n;
}
</script>
<title>Skripty</title>
</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)
if ((hodnota % 10) == 0)
document.write("<th class=\"red\" id=\""+radek+"_"+sloupec+"\">"+hodnota+"</th>");
else
document.write("<th id=\""+radek+"_"+sloupec+"\">"+hodnota+"</th>");
else
if ((hodnota % 10) == 0)
document.write("<td class=\"red\" id=\""+radek+"_"+sloupec+"\" onclick=\"zvyrazni("+hodnota+");\">"+hodnota+"</td>");
else
document.write("<td id=\""+radek+"_"+sloupec+"\" onclick=\"zvyrazni("+hodnota+");\">"+hodnota+"</td>");
}
document.write("</tr>");
}
</script>
</table>
</body>
</html>
a css: table
{
border-collapse: collapse;
}
td
{
border-collapse: collapse;
border: 1px solid green;
}vůbec mě nenapdá, co by mohlo být špatně :( |
||
| _es Profil |
#2 · Zasláno: 3. 3. 2009, 21:50:52
Prečítal si si vôbec to, čo sommm ti poradil v inom vlákne?
Načo zakladáš nové vlákno? |
||
| nox Profil * |
#3 · Zasláno: 4. 3. 2009, 07:31:12
omlouvám se, nečetl jsem to
když řádek 48, respektive 50 nahradím řádkem document.write("<td class=\"red\" id=\""+radek+"_"+sloupec+"\" onclick=\"zvyrazni(hodnota);\">"+hodnota+"</td>");
document.write("<td id=\""+radek+"_"+sloupec+"\" onclick=\"zvyrazni(hodnota);\">"+hodnota+"</td>"); document.write("<td class=\"red\" id=\""+radek+"_"+sloupec+"\" onclick=\""+zvyrazni(hodnota);+"\">"+hodnota+"</td>");
document.write("<td id=\""+radek+"_"+sloupec+"\" onclick=\""+zvyrazni(hodnota);+"\">"+hodnota+"</td>"); |
||
| _es Profil |
#4 · Zasláno: 4. 3. 2009, 09:10:19
Skús radšej popísať, čo sa snažíš dosiahnuť, ten neprehľadný a zbytočne komplikovaný kód asi po tebe nemá nikto chuť lúštiť.
Možno ti potom niekto poradí približný návrh, ako postupovať. |
||
| nox Profil * |
#5 · Zasláno: 4. 3. 2009, 09:32:35
v tabulce 10x10, mám čísla malé násobilky. potřebuju po kliknutí na jedno z těch čísel, aby se podtrhly jeho násobky... takže když kliknu na 32, tak se podthnou 2x 32 a 64, když kliknu na 5, tak se podtrhnou všechna čísla od 5 až po 100, když jsou násobnek pěti. za předpokladu, že 1. řádek a 1. sloupec této tabulky (matice) je hlavička, na kterou to kliknutí reaogovat nebude
|
||
| _es Profil |
#6 · Zasláno: 4. 3. 2009, 11:30:09 · Upravil/a: _es
nox
V prvom rade by bolo dobré priradiť id nie podľa stĺpcov a riadkov ale podľa samotných hodnôt. Čiže keď sa klikne na 6, tak sa podčiarknu bunky s hodnotou id 6, 2*6, 3*6 ... |
||
| nox Profil * |
#7 · Zasláno: 4. 3. 2009, 11:47:16
_es teďka nevím jestli tomu rozumím správně. Takže když ty id přepíšu na násobky, tak ale se mi bude id opakovat, ne? a id by mělo být v jednom dokumentu unikátní?
|
||
| _es Profil |
#8 · Zasláno: 4. 3. 2009, 12:56:48 · Upravil/a: _es
Máš pravdu sú tam hodnoty aj viackrát.
Možno bude predsa len ľahšie to s tými riadkami a stĺpcami. No zle deteguješ tie bunky. Malo by to byť asi nejako takto: var t = 0; while((t += hodnota) <= 100) for(var x=2; x<=10; x++) if(!(t % x))/*podčiarkni bunku v riadku x a stĺpci (hodnota / x)*/; |
||
| nox Profil * |
#9 · Zasláno: 4. 3. 2009, 14:25:32
působí to na mě hodně podobně, jako ty moje 2 fory
function zvyrazni(hodnota){
var t = 0;
while( (t += hodnota) <= 100){
for(var x=2; x<=10; x++){
var y = hodnota/x;
if(!(t % x)){
var styl = document.getElementById(x+'_'+y);
styl.style.borderBottom="1px solid white";
}
else{
var styl = document.getElementById(x+'_'+y);
styl.style.borderBottom="1px solid green";
}
}
}
} |
||
| _es Profil |
#10 · Zasláno: 4. 3. 2009, 14:45:09
nox
Má tam byť t/x namiesto hodnota/x a podmienku treba ešte rozšíriť na if(!(t % x) && document.getElementById(x+'_'+y)) A vetva else v tom cykle nemá zmysel, keďže tento cyklus neprechádza cez všetky bunky. |
||
| habendorf Profil |
#11 · Zasláno: 4. 3. 2009, 14:50:28
Netýká se přímo problému, ale přímé stylování bych nahradil přiřazením třídy.
|
||
| nox Profil * |
#12 · Zasláno: 4. 3. 2009, 15:24:26
nějaká větev else tam být musí, abych když kliknu na jiné číslo, aby se to podbarvení vrátilo do defaultního podtržení. takže když jsem to napsal takto:
function zvyrazni(hodnota){
var t = 0;
while( (t += hodnota) <= 100){
for(var x=2; x<=10; x++){
var y = t/x;
if(!(t % x) && document.getElementById(x+'_'+y)){
var styl = document.getElementById(x+'_'+y);
styl.style.borderBottom="1px solid white";
}
}
}
}tak to předchozí zvýraznění nesmaže... |
||
| _es Profil |
#13 · Zasláno: 4. 3. 2009, 16:10:57
A okrem tej drobnosti, už ti to funguje tak ako má?
Tak pred podčiarknutím najprv prejdeš všetky bunky a nastavíš na nich východzí stav. Síce to bude veľmi neefektívne, no komu by sa chcelo s tým viac zaoberať. Asi by to nejako išlo oveľa jednoduchšie, využitím tried a pod. a a bez toho getElementById. |
||
| nox Profil * |
#14 · Zasláno: 4. 3. 2009, 16:18:06
jj kromě toho posledního řádku, kde jsou desítky to funguje... zkoušel jsem u
styl.style.borderBottom="1px solid white"; nějak nastavit !important, že mi to připadalo, jako by ta půvobní hodnota měla větší váhu. Nebo mě teď napadá (i když asi taky neefektivní řešení) jestli jde přes styl.style.borderBottom="1px solid white"; nastavit nějaká Zvalue, prostě pozice v ose z |
||
|
Časová prodleva: 17 let
|
|||
0