Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Javascript - Menu změna třídy (class) po kliknutí na položku

Dobrý den může mi někdo poradit proč mi nefunguje tento kod.
Je to kod pro menu kdy když kliknu na položku změní se jí třída na "selectedMenu".
a u ostatních položek se nastaví třída na "normalMenu".
Něco jsem zkoušel v kodu níže ale nefunguje mi to v konzoly to píše chybu :
"Uncaught TypeError: Cannot set property 'className' of null".
Prosím poradte jak to opravit. Díky moc.

<link rel="stylesheet" type="text/css" href="demo.css" />
<script type='text/javascript' src='http://code.jquery.com/jquery-1.6.2.js'></script>
<script type="text/javascript" src="script.js"></script>

<script type='text/javascript'>

function zmen(x,y)
{
var z=0;
for (z=0;z<=y;z++)
{
var cName = 'normalMenu';
document.getElementById(z).className = cName;
}

var cName_X = 'selectedMenu';
document.getElementById(x).className = cName_X;
}  

</script>

</head>

<body>

<div id="menu-container">

<ul id="navigationMenu">

<li><a href="#" id="1" class="normalMenu" onclick="zmen(1,6);">Home</a></li>
<li><a href="#" id="2" class="normalMenu" onclick="zmen(2,6);">Services</a></li>
<li><a href="#" id="3" class="normalMenu" onclick="zmen(3,6);">Our clients</a></li> <!-- class="selectedMenu" -->
<li><a href="#" id="4" class="normalMenu" onclick="zmen(4,6);">The team</a></li>
<li><a href="#" id="5" class="normalMenu" onclick="zmen(5,6);">About us</a></li>
<li><a href="#" id="6" class="normalMenu" onclick="zmen(6,6);">Contact us</a></li>

</ul>

</div>
Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
aha tak to jsem netušil že nesmí být id číslo , já jsem to nikdy nedělal s číslem takže nevím ale ni… nový
Vasekdvor 20.02.2012 16:44
Vasekdvor
Když máš rád PHP: http://polopate.jakpsatweb.cz/index.php?page=inclu de4 nový
Mihh 20.02.2012 17:42
Mihh
Javascript osobně nesnáším mám radši PHP ale jsou takové věci které prostě vyžadují javascript. Men… nový
Kráťa 20.02.2012 23:53
Kráťa
Pretože pre z=0 ti to nenájde žiaden element. Buď čísluj elementy od 0 alebo začínaj so z=1. Výhrad… nový
los 20.02.2012 20:04
los
díky funguje to ale blbne to, no nevadí. nový
Vasekdvor 21.02.2012 17:20
Vasekdvor
Je to z tohoto článku (tutorialzine.com) a chtěl jsem to zkusit upravit podle popisu výše nevyšlo to… poslední
Vasekdvor 21.02.2012 17:37
Vasekdvor

aha tak to jsem netušil že nesmí být id číslo , já jsem to nikdy nedělal s číslem takže nevím ale nicméně i po vaší úpravě se nic nezměnilo stále to píše stejnou hlášku a nefunguje to.Javascript osobně nesnáším mám radši PHP ale jsou takové věci které prostě vyžadují javascript.

Ono mě se to předtím podařilo udělat tak že když kliknu na nějakou položku v menu tak se mi změní ta třída
(class selectedMenu) ale ostatní položky se mi nezměnily zpět na neaktivní. (class normalMenu)

Javascript osobně nesnáším mám radši PHP ale jsou takové věci které prostě vyžadují javascript.

Menu to určitě nebude :-) Navíc ti, kteří budou mít javascript vypnutý to ani neuvidí. Lepší by bylo CSS. Na www.interval.cz je těch menu v CSS několik.
http://interval.cz/vysledky-vyhledavani/?cx=017179 391598217508746%3A6y9qdijoo0q&cof=FORID%3A11&ie=UT F-8&q=menu+css&sa=Hledat

Pretože pre z=0 ti to nenájde žiaden element. Buď čísluj elementy od 0 alebo začínaj so z=1.

Výhrady ku kódu sa mi nechce písať, tak len v skratke: identifikátory (okrem toho, že by nemali začínať číslicou) na takejto stránke vôbec nepotrebuješ, taktiež nepotrebuješ opakovať class=normalMenu, taktiež onclick by nemuselo byť priamo v HTML a ani odkazy by tam nemuseli byť (alebo keď už, tak aspoň na #home, #services atď s tým, že na začiatku to dáš do stavu podľa location.hash).

Zpět do poradny Odpovědět na původní otázku Nahoru