Avatar billede funkyloonie Nybegynder
09. december 2003 - 00:12 Der er 12 kommentarer og
1 løsning

Skifte tekst i link

Jeg har et link <a id="my" href="" onclick="expandDiv(); return false;">Åbn</a> hvor jeg gerne vil ændre teksten Åbn til Luk. Jeg har prøvet ved hjælp af mit id men det lykkes ikke. Hvordan er det man gør?
Avatar billede Slettet bruger
09. december 2003 - 00:27 #1
Hvis du mener i JavaScript tror jeg, at det er noget i denne stil:

document.getElementByID("my").InnerHTML="Luk"
Avatar billede thesurfer Nybegynder
09. december 2003 - 00:30 #2
my.innerHTML='Luk';
Avatar billede thesurfer Nybegynder
09. december 2003 - 00:32 #3
if (my.innerHTML=='Luk'){ my.innerHTML='Åben'; } else { my.innerHTML='Luk'; };
Avatar billede thesurfer Nybegynder
09. december 2003 - 00:34 #4
Hvad står der i funktionen expandDiv()?
Kan du ikke lige indsætte den her?
Avatar billede funkyloonie Nybegynder
09. december 2003 - 00:35 #5
Det er i enige om. tak. sandbox var først så du 'vinder'- svar plz
Avatar billede funkyloonie Nybegynder
09. december 2003 - 00:36 #6
måske ryger den ind i funktionen men først skulle det lige virke ;)
Avatar billede Slettet bruger
09. december 2003 - 01:01 #7
Forskellen på mit forslag og thesurfers er, at mit også virker i Mozilla.
Avatar billede thesurfer Nybegynder
09. december 2003 - 01:02 #8
Når jeg bruger document.getElementByID("my").InnerHTML="Luk" får jeg en fejl:
"Objektet understøtter ikke denne egenskab eller metode"

Hvis jeg bruger my.innerHTML='Luk', virker det fint nok..

Jeg har prøvet det i Internet Explorer 6.. kan I bekræfte fejlen?
Avatar billede thesurfer Nybegynder
09. december 2003 - 01:03 #9
Der sker det samme i Opera v7.20..
Avatar billede thesurfer Nybegynder
09. december 2003 - 01:05 #10
Jeg brugte denne kode:
<a href="#" id="my" onclick="document.getElementByID('my').InnerHTML='Luk'; return false; ">Åbn</a>

Og fik denne error-report fra Opera v7.20:

Event thread: onclick
Error:
name: TypeError
message: Statement on line 1: Expression did not evaluate to a function object: document.getElementByID
Backtrace:
  In unknown script
    document.getElementByID("my").InnerHTML = "Luk";
  At unknown location
    {event handler trampoline}
Avatar billede Slettet bruger
09. december 2003 - 01:45 #11
Jeg var ikke klar over, at JavaScript var case-sensitiv. Den korrekte udgave (som burde virke i alle browsere, der understøtter DOM) er:

document.getElementById('my').innerHTML='Luk'

Den kan med fordel kombineres med thesurfers forslag:

mylink=document.getElementById('my');
if (mylink.innerHTML=='Luk'){ mylink.innerHTML='Åben'; } else { mylink.innerHTML='Luk'; };

Hvis man bare bruger my.innerHTML='Luk'; giver Mozilla en fejl.
Avatar billede roenving Novice
09. december 2003 - 06:31 #12
>>sandbox

-- så er det på tide, at du finder ud af det ...

Javascript er _ekstremt_ case-sensitivt, intet parses uden hensyntagen til case (lige bortset fra RegExp med i !-)

-- og i øvrigt er det grundlæggende, at brugen af id'er som direkte reference (som thesurfer bruger) forudsætter document.all, som det er tilladt at udelade ...

document.all understøttes som bekendt kun af M$ og Opera !o]
Avatar billede Slettet bruger
09. december 2003 - 10:50 #13
>>roenving

Jeg har aldrig rigtigt haft brug for JavaScript, så den detalje var feset forbi min opmærksomhed.

Til gengæld havde jeg på et tidspunkt opdaget, at på sider, der er skrevet med id.attribut=Værdi eller id.mtode(), kan man ofte få de til at virke i Mozilla bare ved at tilføje en linie øverst med id=document.getElementById('id');
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester