2016-06-12 7 views
0

Das scheint eine ziemlich grundlegende Frage zu sein, aber ich kann nicht verstehen, warum das so ist. Ich bin neu in JavaScript.JS Variablen deklarieren und getElementById() verwenden

Wenn ich etwas tun, wie folgt ...

<!-- variable defined but not used --> 
var theLeftSide = document.getElementById("leftSide"); 

function generateFaces(){ 
    <!-- some code here --> 
    document.getElementById("leftSide").appendChild(face); 
} 

Ich habe kein Problem, und der Code ausgeführt wird. Aber wenn ich die Variable, die ich deklariert habe, stattdessen verwende, funktioniert sie nicht mehr, weil "theLeftSide null ist".

Dies funktioniert nicht ...

<!-- variable declared but not used --> 
var theLeftSide = document.getElementById("leftSide"); 

function generateFaces(){ 
    <!-- some code here --> 
    theLeftSide.appendChild(face); 
} 

Warum ist das passiert? Ich denke, ich habe den ganzen relevanten Code, aber ich kann hinzufügen, wenn es sein muss.

+1

Ihr erster Kommentar ist _wrong_. Die Variable ist definiert, nicht deklariert. Eine Deklaration enthält keine Zuordnung. –

+0

lol oops. Vielen Dank. –

+0

Sie sollten Ihren Code in 'window.onload' verpacken. Wenn das Element nicht gerendert wird und Sie versuchen, es abzurufen, wird 'undefined' zurückgegeben. In meinem Verständnis ist dies das Problem – Rajesh

Antwort

2

Das Problem ist nicht die Variable selbst.

Die Zuordnung im Code wird vorgenommen, bevor das DOM bereit ist.

Setzen Sie Ihre Skript-Tag am Ende des Dokuments body-Tag, und versuchen Sie es.

+0

Vielen Dank. Dies ist meine erste Verwendung von DOM und der Professor ging nie darüber hinweg. Ich habe den Unterschied zwischen Deklaration in Kopf und Körper nachgeschlagen, und die Seiten, die ich gesehen habe, haben das nicht erwähnt. –