2012-04-11 10 views
1

Später im Skript wird die Variable auf den inneren HTML-Code eines div gesetzt und als undefined gekennzeichnet. Gibt es einen Fehler in meiner for-Schleife?For-Schleife gibt undefinierte Variable zurück

+2

Welche Variable ist "die Variable"? –

+0

@JamesMontagne Ganzsache. – Wilson

+5

@JesusSqueegee Sollte es nicht "Radio" statt "Radiobutton" sein? – loganfsmyth

Antwort

1

Es gibt keine Art ist radiobutton, ich glaube, Sie type == 'radio' wollen.

-1

Ihre wholesale Variable ist innerhalb des inneren Bereichs definiert. Sobald Sie diesen Bereich verlassen, existiert die Variable nicht mehr. Lesen Sie mehr über Javascript scope here oder here. Sie können Ihren Code wie folgt ändern:

var wholebase = null; //<-- declare the variable here 
var formobj = document.h1; 
for (var j = 0; j < formobj.elements.length; j++){ 
     if (formobj.elements[j].type == "radiobutton" && formobj.elements[j].checked){ 
     wholebase = formobj.elements[j].value; 
    } 
} 
+0

Welchen inneren Umfang? –

+0

@Ilia Frenkel Eigentlich ist das falsch. Javascript die guten Teile: "Leider hat JavaScript keinen Blockbereich, obwohl seine Block-Syntax dies nahelegt. Diese Verwirrung kann eine Fehlerquelle sein." Versuchen Sie einen einfachen Testfall, bei dem Sie eine Variable in einer for-Schleife deklarieren und dann in der Zeile nach dem Schließen der Schleife verwenden. Es wird sichtbar sein. – AlexMA

+0

@AlexMA Sie haben absolut Recht! Das passiert, wenn man vor der Mittagspause in 4 verschiedenen Sprachen programmiert :-) –

Verwandte Themen