Oef. Dat's best een grote lijst met if/else! Hier wat losse tips:
variabelen altijd met
var aanmaken.
"undefined" is niet echt netjes, je kan het beter zonder quotes doen. Of, wat netter is, met een logische OR.
Variabelen checken op existence is niet echt netjes.
Je variabele-scope is helemaal kaput...

document.write kan veel beter verwisseld worden met wat DOM-magie.
Waarom een parameter grootte in string-formaat? Integer is makkelijker. En beter. En maakt de code een stuk netter
Maargoed, over je if-geval. Hier is een netter voorbeeld, dat een stuk logischer is. En netter. En korter, en makkelijker. :thumb:[JS]// deze moeten globaal neem ik aan?
var textkleur = '000000';
var textgrootte = 100;
// de vernieuwde magische functie
function verander(id, parameter)
{
var tag = document.getElementById(id);
if(parameter == textgrootte)
{
alert("De text heeft al de grootte " + parameter);
}else{
textgrootte = parameter;
tag.setAttribute('class', 'k' + textkleur + 'g' + textgrootte);
}
}
// btw, if/else moet geen ; achter het block. Dit is erg verwarrend, want het
// lijkt er zo op alsof je met een object bezig bent.[/JS]Anyway, mocht je alleen textgroottes willen toelaten die tussen de 100 en 500 zitten, doe dan zoiets:
[JS]function verander(id, parameter)
{
var tag = document.getElementById(id);
if(parameter == textgrootte)
{
alert("De text heeft al de grootte " + parameter);
}else{
switch(parameter)
{
case 100:
case 200:
case 300:
case 400:
case 500:
textgrootte = parameter;
tag.setAttribute('class', 'k' + textkleur + 'g' + textgrootte);
break;
default: /* als er iets anders is ingevuld */
alert('Alleen de groottes 100, 200, 300, 400 en 500 zijn toegestaan!');
break;
}
}
}[/JS]Je aanroep wordt dan wel zoiets:
HTML:
<li><a onclick="verander('tekst',500);">500</a></li>