2016-04-08 18 views
2

Ich habe ein Problem mit meiner for-Schleife in einer JavaScript-Funktion. Die Variable i arbeitet nicht als Argument für die Funktion showAlbum(i). Warum passiert das?Javascript für Loop Variable funktioniert nicht

var out = "<table>"; 
for(i = 0; i < arr.length; i++) { 
      out += "<tr><td><a href=''onclick='showAlbum(i);' >"+ 
       arr[i].artist + 
       " - " + 
       arr[i].title + 
       "</a></td></tr>"; 
     } 
out += "</table>"; 

Antwort

4

Da i in Anführungszeichen eingewickelt der wörtliche Charakter ist i, nicht die in Ihrem i variabel gehaltene Wert. Sie müssen es beurteilen außerhalb der Zitate:

out += "<tr><td><a href=''onclick='showAlbum(" + i + ");' >" 
+0

Danke für die kurze und gut Antwort erklärt. –

4

Die i ist im Stringliteral, so Variablen werden nicht aus der Zeichenfolge analysiert.

Pause aus dem String wie so:

out += "<tr><td><a href=''onclick='showAlbum(" + i + ");' >"+ 
//           ^^^^^^^^^ 
0

Versuchen Sie, die Formatierung:

var i, 
    out = '<table>'; 
for (i = 0; i < arr.length; i++) { 
    out += '<tr><td><a href="" onclick="showAlbum(' + i + ')" >' + 
     arr[i].artist + 
     ' - ' + 
     arr[i].title + 
     '</a></td></tr>'; 
} 
out += '</table>';