Avatar billede starfarm Nybegynder
29. januar 2008 - 12:33 Der er 13 kommentarer og
1 løsning

document.getElementByID has no properties

Hej

Jeg har du scouted google efter en løsning på dette. Men nu må jeg vist hellere spørge jer. Er der nogen der kan forklare mig hvorfor dette giver "document.getElementByID('') has no properties" i firefox, mens det virker i IE?

JS:
<script type="text/javascript">
    function galleryControl(txt)
    {
        document.getElementById('zoomedImg').src=(txt);
    }
</script>
HTML:
<li><a href="#" onclick="galleryControl('images/img1.jpg')">01</a></li>

Håber i kan hjælpe mig.
Avatar billede w13 Novice
29. januar 2008 - 13:04 #1
Hvordan ser det tag ud, der har id="zoomedimg"?
Avatar billede softspot Forsker
29. januar 2008 - 13:36 #2
Det skulle vel aldrig være sådan, at du opretter billedet dynamisk og i den forbindelse ikke får tildelt billedet et id på den "rigtige måde" i FireFox...?
Avatar billede jokkejensen Novice
29. januar 2008 - 13:38 #3
nogen grund til at sætte txt i paranteser når .src er en proberty ?

.src = txt;

/J
Avatar billede jokkejensen Novice
29. januar 2008 - 13:38 #4
*property
Avatar billede w13 Novice
29. januar 2008 - 13:42 #5
Egentlig burde du også rette:

        document.getElementById('zoomedImg').src=(txt);

til:

        document.getElementById('zoomedImg').setAttribute("src",txt);

hvis det nu skal være rigtig DOM (Document Object Model). Og det skal det vel. =)
Avatar billede starfarm Nybegynder
29. januar 2008 - 14:00 #6
Hej jokkejensen og w13

Jeg har nu prøvet begge jeres forslag og det er desværre ikke med succes. Det min firebug giver mig i alle tilfælde er:

document.getElementById("zoomedImg") has no properties
[Break on this error] document.getElementById('zoomedImg').src=txt;

og

document.getElementById("zoomedImg") has no properties
[Break on this error] document.getElementById('zoomedImg').setAttribute("src",txt);

Jeg kører stadig på teststadiet, så jeg har nogle andre getElementById der bliver kørt direkte på "onclick", som virker fint. Men jeg vil gerne køre flere js-funktioner på min onclick, så hvis i har et forslag til dette istedet er det osse meget velkomment.
Avatar billede softspot Forsker
29. januar 2008 - 14:20 #7
Hvordan opretter du dit billede-element (det du henter med getElementById)?
Avatar billede starfarm Nybegynder
29. januar 2008 - 14:33 #8
det er i C# med en stringbuilder i et foreachloop, hvor dette kode blot bliver appended "<li><a href="#" onclick="galleryControl('images/img1.jpg')">01</a></li>" og hvor "images/img1.jpg" bliver hentet fra database. Og så har jeg en div med id="zoomedImg" hvor billedet/billederne bliver vist

Jeg har lavet det samme før, så jeg er sikker på at det virker, også i firefox, men som jeg skrev i kommentaren før, vil jeg gerne køre to funktioner med onclick. Så hvis du eventuelt har en løsning på det, er det også velkomment :)
Avatar billede softspot Forsker
29. januar 2008 - 14:39 #9
Jamen, det kode du viser der definerer jo kun links til at aktivere koden, det viser ikke hvordan selve img-elementet er oprettet, det er derfor jeg spørger efter det igen... :)

Mht. to funktionskald på onclick, tænker du så på noget i stil med dette (flere funktionskald adskilles med semikolon):

<li><a href="#" onclick="galleryControl('images/img1.jpg'); galleryControl('images/img2.jpg')">01</a></li>
Avatar billede softspot Forsker
29. januar 2008 - 14:40 #10
Nu skriver du godt nok at du har et div med id='zoomedImg', men det burde vel være et img.

Kan du ikke lige vise den kode med dit div-element?
Avatar billede starfarm Nybegynder
29. januar 2008 - 15:02 #11
Dette er hvad jeg har. Jeg har ikke særlig meget styr på javascript, hvilket også er årsagen til at jeg sætter min lid til jer herinde :)


Dette er "originalen", som jeg forsøger at ændre til at køre en funktion, som jeg selv har lavet til at køre flere javascript. Hvis det ikke er dette du mener, så forstår jeg ingenting :)

<li><a href="#" onclick="document.getElementById('zoomedimg').src='images/img2.jpg'">03</a></li>

Du har selvfølgelig ret. Det er et img. Beklager :)

<img id="zoomedimg" src="images/img2.jpg" alt="" />


Anyways, softspot. Jeg prøvede lige om det kunne være så simpelt at skille funktioner ad med et ; og det var det sørme :) Nogen gange er det svært at se skoven for bare træer.

Kast et svar for den og tak for hjælpen. Jeg vender nok tilbage en anden gang :)
Avatar billede softspot Forsker
29. januar 2008 - 15:10 #12
Prøv lige at ændre din funktion til dette:

<script type="text/javascript">
    function galleryControl(txt)
    {
        document.getElementById('zoomedimg').src = txt;
    }
</script>

Jeg er ret overbevist om at det er fordi dit id er lower case i HTML-koden og du spørger efter et id hvor i'et i img er med stort (zoomedImg).
Avatar billede starfarm Nybegynder
29. januar 2008 - 15:32 #13
Du har gode øjne softspot. Tænk at jeg ikke overhovedet havde overvejet dette. Især når jeg utallige gange har revet mig i håret over hvor casesensitiv C# er :)

Du har helt sikkert fortjent alle points. (og måske lidt til). takker endnu engang.
Avatar billede softspot Forsker
29. januar 2008 - 15:39 #14
Tak for point :)
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