function denneSkalNuKaldesIStedet(id) { // DoSomething } </code>
Spørgsmålet...
Nu er det så at jeg ville høre om man kunne lave det samme ved at bruge en anden funktion end getElementById? f.eks. getElementsByName eller andet? Hvordan gør man??
Grunden til jeg ikke kan bruge denne er at der er en style bundet op på id'et test som jeg ikke kan ændre, og jeg har et variabelt antal testere.
Dvs. jeg skal faktisk have: <code> <a id="test" name="tester1" href="#" onclick="klikket("tester1");">Testknap</a> <a id="test" name="tester2" href="#" onclick="klikket("tester2");">Testknap</a> <a id="test" name="tester3" href="#" onclick="klikket("tester3");">Testknap</a> <a id="test" name="tester4" href="#" onclick="klikket("tester4");">Testknap</a> </code> Jeg har en
Og det giver jo også mening, for definitionen af et id er jo "noget der er unikt". Hvis du har 7 af det samme id på siden, er det ikke ligefrem særlig unikt. ;)
En anden ting er, at innerHTML ikke er en valid i nogen standard, om end den virker i alle browsere, så du bør rette: knap.innerHTML = 'Ny funktion'; til: knap.firstChild.nodeValue = 'Ny funktion';
Og så til sagen: Hvorfor sætter du ikke bare id'erne til tester1, tester2, tester3, osv. i stedet for at sætte disse på name? (Det er i øvrigt heller ikke "tilladt" at sætte name-attributter på A-tags.)
Og som svar på dit spørgsmål, så kan du bruge getElementsByTagName("a") som giver en liste over alle a-tags. Så kan du f.eks. det første ved at skrive document.getElementsByTagName("a")[0], det andet med document.getElementsByTagName("a")[1], osv. Du kan også lave en løkke, der kører alle disse igennem.
Men hvis det nu skal være helt optimalt, så kan du også bare overføre "this", som giver en reference til det element, man klikkede på. Se dette eksempel:
<script type="text/javascript"> function klikket(knap) { knap.style.display = 'block';
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.