Avatar billede zuran Nybegynder
02. juli 2009 - 01:31 Der er 11 kommentarer og
1 løsning

document.getElementById(..) er null

Hej.

Jeg har her de 2 seneste dage, prøvet at håndtere et element med et bestemt id, uden resultat. Jeg forstår det simpelthen ikke, da jeg blot får fejlen "document.getElementById(..) er null eller ikke et objekt".

Elementet eksisterer, og har 100% det angivne ID, men af en eller anden grund, bliver den VED med at sige, at det ikke eksisterer. Jeg har prøvet at foretage noget lignende med document.getElement.... tusind gange før, hvor det altid har virket.

Det vi snakker om her, er at _sætte_ noget, hvilket den ikke vil. Jeg kan sagtens få _fat_ i noget fra elementet. På trods af fejlen, så fungerer det stadigvæk i f.eks Firefox og Google Chrome, men i browsernes fejlkonsoller, udskrives fejlen.

Jeg gætter kraftigt på, at grunden til det har virket med alt andet, er at jeg i dette tilfælde anvender noget AJAX sammen med overnævnte.

Jeg har læst noget om, at det er fordi elementet rent faktisk IKKE har det id man har angivet i HTML koden, men derimod et andet, man kan se med nogle programmer. Det forvirrer mig blot endnu mere.

Hjælp fra nogle? Tak på forhånd!
Avatar billede keysersoze Ekspert
02. juli 2009 - 07:23 #1
er det noget du kan lægge et link til så vi kan se?
Avatar billede dotnewbi Juniormester
02. juli 2009 - 10:18 #2
bliver din javascript kørt i toppen af siden eller er den i bunden af siden. hvis det første er tilfældet så vil browseren køre funktionen før den får læse html'en ind som indeholder elementet og det vil give en null error. Så hvis coden er i toppen flytte det til bunden af siden.
Avatar billede majbom Novice
02. juli 2009 - 10:25 #3
synes også det lyder som om at den kører koden inden elementet er blevet genereret...
Avatar billede roenving Novice
02. juli 2009 - 11:49 #4
-- og det kunne netop have noget med noget ajax at gøre, for hvis man indsætter html-formatteret kode (med innerHTML), kan der være problemer med at finde elementer i DOM-hierarkiet !-)
Avatar billede zuran Nybegynder
02. juli 2009 - 20:39 #5
Scriptet der inkluderer JS filen, hvilken skulle foretage handling, er placeret under html elementet, så det er ikke der problemet er.

Link til JS fil: http://pastebin.com/m390ea8f8

Som sagt, så eksisterer elementet med det angivne ID 100%.
Avatar billede tjens Nybegynder
03. juli 2009 - 21:31 #6
Hvis din "content" er en tom div, vil .innerHTML ikke eksistere i flere browsere.

Prøv at skrive noget i "content" allerede i HTML.
F.eks. "Please wait ..."
Avatar billede zuran Nybegynder
03. juli 2009 - 23:27 #7
Det gjorde ingen forskel.. samme fejl.

document.getElementById(...) er null eller ikke et objekt
Avatar billede tjens Nybegynder
04. juli 2009 - 17:19 #8
Kan du ikke vise din HTML også, så vi kan se sammenhængen?

Evt. lave et nyt eksempel, med så lidt kode som muligt, til os.
Avatar billede zuran Nybegynder
04. juli 2009 - 19:01 #9
Det har intet med HTML'en at gøre. Det er noget med det AJAX der er blandet ind i JS filen.

<doctype............
<html>
<head>
title
meta tags
include til css
</head>
<body>

<div id="content">Vent venligst</div>

<script src="javascript.js" type="text/javascript"></script>

</body>
</html>
Avatar billede tjens Nybegynder
04. juli 2009 - 22:08 #10
Jeg har nu tastet og testet dit eksempel,
og jeg får ikke fejl i Chrome, FF og MSIE8
Avatar billede zuran Nybegynder
04. juli 2009 - 22:55 #11
Da du nu skrev, at det virkede ved dig, så valgte jeg lige at læse min HTML igennem igen.

Det slår mig så kort efter, hvad fejlen egentlig er. Jeg har et iframe placeret inde i HTML'en (Hvilket jeg ikke så som nødvendig at tage med, da jeg postede min HTML kode herinde). Siden som det iframe så refererede til, indeholdte samme linje, til at inkludere javascript, altså samme javascript fil. Og siden iframet referedede til, havde jo ikke et element, med id'et "content", hvorfor den så udskriver fejl konstant.

Jeg spørger bare lige hurtigt: Hvor dum har jeg lov til at være? Tilsyneladende dummere end loven tillader.

Dvs. i ingen mulighed havde for at gennemskue fejlen, hvilket jeg beklager.

Hvis du vil smide et svar tjens, så skal jeg give dig nogle point :)
Avatar billede tjens Nybegynder
04. juli 2009 - 23:17 #12
Jeg tænkte nok du holdt noget hemmeligt for os ;-)
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