27. februar 2003 - 17:37Der er
15 kommentarer og 2 løsninger
sætte class på link
Jeg har X antal links
når man klikker på et link, skal en javascript funktion nulstille alle mine links til en bestemt class, hvorefter det valgte link skal have en anden class. Jeg ønsker altså at det aktive link skal bruge en anden class end de andre link
javascriptet skal altså søge efter alle links hvori ordet "link" indgår i ID. disse links skal så sættes til class = normal. Herefter skal det valgte link have class = selected.
Der bliver investeret massivt i AI. Teknologien er mere tilgængelig end nogensinde, og ambitionerne er høje. Alligevel oplever mange virksomheder, at resultaterne udebliver.
ja, men jeg har brug for en funktion - som kan bruges på et vilkårligt antal links. men det er vigtigt at den ikke ændrer ALLE links i dokumenetet. Kun dem der indeholder f.eks. ordet "link" i deres ID. så jeg kan styre hvilke links der skal manipuleres !
Du har fx. <a href="1" class="normal" id="link1">link 1</a>
her er ID "link1" og class er "normal"
Dvs at du med funktionen "skiftKlasse" kan skifte styles på en masse ID's på en gang. Fx. onclick="skiftKlasse('link1',normal,'link1','ikkenormal','link3','ikkenormal');return false;"
osv..
-----
Den tilrådene måde er istedet at skifte stylen direkte på elementet, da hele css strukturen så ikke skal genindlæses.
fx. med document.getElementById('elementID').style.color = "red";
function loopLinks() { for (i=0; i!=document.links.length; i++) { if (document.links[i].id.indexOf("link")!=-1) document.links[i].style.color = "red"; } }
<script> function chooseLink(linkID) { for (i=0; i!=document.links.length; i++) { if (document.links[i].id.indexOf("link")!=-1) document.links[i].className = "mitLink"; }
Nu har jeg fået ovenstående skruet sammen. Koden virker på min IE6. Vil den virke fra IE4+ ? Hvis ikke, hvad skal der så ændres for at den vil virke fra IE4.
Hvordan ser ovenstående script ud rent hastighedsmæssigt - er det en dum/forkert måde at gribe det an på ???
rent hastighedsmæssigt er det en anelse ødselt. det ville være hurtigere ret regnemæssigt at sætte hver style separat. function chooseLink(linkID) { for (i=0; i!=document.links.length; i++) { if (document.links[i].id.indexOf("link")!=-1) { styleRoot = document.links[i].style; styleRoot.textDecoration = underline; // osv } }
skulle virke fint på IE4, men den har du jo hørt før.
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.