Autor Zpráva
Monkeys
Profil *
Tento zapis mi vobec nefunguje ....

$("td[rowspan]").each(function(i) {
    if(i%2==0)
    {
    $(this).addClass("red");
    }
    else
    {
    $(this).addClass("blue");    
    }
});

neviem neberie mi to

vdaka
M.
preca1
Profil
Zdravim,
taky díky.
Kcko
Profil
preca1:
:D
Kubo2
Profil
Monkeys:
Podľa mňa si vystačíš aj bez jQuery, s obyčajným, čistým CSS.

td[rowspan]:nth-child(even) { color: red }
td[rowspan]:nth-child(odd) { color: blue }
td:not([rowspan]) { font-weight: bold }

Funguje to dokonca aj na mobile, kde som to vlastne testoval.
_es
Profil
Monkeys:
Máš to rozbité.
Monkeys
Profil *
Tak sme sa silno pobavili a mozme ist spat ...
Kubo2
Profil
_es:
Dobre, Monkeys to síce má rozbité, ale neposlal sem „čtyři obrazovky kódu“, ale iba desať jednoduchých riadkov, ktoré mu nefungujú.
Skúšal som to u seba, a tak môžem potvrdiť, že mu nefunguje práve tých desať riadkov, a nie niečo, čo má možno v kóde predtým.
preca1
Profil
Kubo2:
A co si zkoušel? 10 řádků JS? Bez HTML? S HTML? Jaký bylo to HTML? Nemá náhodou chybu v CSS, takže třídy red a blue nejsou definovaný? Neni celej tenhle kód v nepřístupný větvy switche? Není před tímhle kódem nějaká jiná chyba? Nemá překlep v rowpsan? Jak si poznal, že to nefunguje? Co znamená nefunguje?

Asi máš nějaký informace navíc. Já jsem nedokázal vykoumat kontext onoho příspěvku (ani dotaz to neni, jen holý oznámení), takže sem se snažil naznačit, že by možná moh přidat nějaký informace. Na diskusi se pohybuje už dost dlouho, takže by moh tušit, že nejlepší je přidat odkaz na živou ukázku.
Monkeys
Profil *
No ziva ukazka.
http://jsfiddle.net/N2fP9/

Ak to prepisem do externeho suboru tak to nejde.
Je to ten isty kod.

preca1:
To ci mam nemam k tomu HTML no tak asi mam na com bysom to testoval ?
Tak isto aj css mam definovane. Takze to su bludy do vetra.

M.
Kcko
Profil
Monkeys:
Ak to prepisem do externeho suboru tak to nejde.
Tak máš přesně v tomto kroku procesu chybu. Nauč se debugovat kód, začni použivat nějaký ladící nástroj (firebug, chrome konzoli ...)

Edit: Updatované řešení s použitím externího souboru http://jsfiddle.net/2tZfG/ ( http://rjwebdesign.cz/lama.js )
--
Dobrou noc
preca1
Profil
Monkeys:
Proč sem dáváš odkaz na fungující kód? K čemu nám je? Navíc ten kód je úplně jinej, než ten v prvnim příspěvku. Jak teda ten kód vypadá? Proč si vyndal proměnný c a d z uzávěry?
Pořád nedokážeš pochopit, že k pochopení toho, kde je chyba, je potřeba kontext. Máš správně zadanou cestu k tomu souboru? Co dalšího je v tom souboru? Kdy se ten kód volá? Po načtení stránky? Po kliknutí na nějaký tlačítko? Po přijetí dat ze serveru?
Můžeš, prosim tě, dát odkaz na onu jednu konkrétní stránku, kde se projevu problém?
Kubo2
Profil
Reakcia na precu1:
A co jsi zkoušel?

Presne toto (do medzery):
 <style>
.red { color: red }
.blue { color: blue }
td:not([rowspan]) { font-weight: bold }
</style>
<table border=1>
<tr>
<td rowspan=2>td rowspan 2
<td>iba td
</tr><tr>
<td>iba td
</tr><tr>
<td rowspan=3>td rowspan 3
<td rowspan=2>td rowspan 2
</tr><tr>
<td>iba td
</tr>
</table>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
$(function(){
$("td[rowspan]").each(function(i) { if(i%2==0) { $(this).addClass("red"); } else { $(this).addClass("blue"); } });
});
</script> 

V jQuery som kedysi niečo písal (tuším minigalériu), tak som si obalenie do $(function(){ ... }); domyslel.
„Nefungovalo to“ znamená, že to nerobilo to čo by to malo robiť (kľudne si skús moje riešenie pomocou CSS v [#4], aby si sa dozvedel, ako by mal vyzerať korektný výsledok).


Doplnenie: „Jak si poznal, že to nefunguje?
Nemám síce na mobile JS konzolu, ale výsledok vyzeral, ako keby sa kód buď nevykonal, alebo v ňom bola chyba, resp. nič sa nestalo, nezafarbilo. Ešte to skúsim s try-catch, ale napadla mi teraz jedna možná chyba.

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: