2017-12-08 1 views
0

Dies ist eine JavaScript-Funktion innerhalb eines HTML-Tags, aber wenn ich die Warnung (currentalbum) unter die for-Schleife verschiebe, wird die zweite Warnung nicht ausgeführt - nur die erste, warum?Warum erhalte ich nur eine einzige Warnung von folgendem Javascript?

function populatetracks(albumvalue) { 
    var currentalbum = albumvalue; 
    alert(currentalbum); // #1 

    document.getElementById("TracksList").options.length = 0; 

    for(i = 0; albums[albumvalue].tracks.length - 1; i++) { 
     var s = document.getElementById('TracksList'); 
     var opt = document.createElement('option'); 
     opt.appendChild(document.createTextNode(albums[albumvalue].tracks[i].title)); 
     opt.value = i; 
     s.appendChild(opt); 
    } 

    alert(currentalbum); // #2 
} 

'# 1' erzeugt einen Alarm, aber '# 2' nicht.

+4

Auf einen Blick sieht es so aus wie die 'for' Schleife nie endet. – Quentin

+0

@Quentin Es sei denn, die Spurliste hat genau die Länge 1, in welchem ​​Fall die "Bedingung" zu "0", einem falschen Wert, auswertet und die Schleife vollständig überspringt. –

+3

versuche 'i kemotoe

Antwort

2

Wie bereits erwähnt, nicht sicher, wie Ihre For-Schleife gestoppt werden soll.

Dies keine Bewertung hat darin, nur einen Inkrementierer

for(i=0; albums[albumvalue].tracks.length -1; i++){ 

Vielleicht versuchen (müssen möglicherweise '=' zu '< =' ändern)

for(i=0; i < albums[albumvalue].tracks.length -1; i++){ 
Verwandte Themen