2016-04-08 4 views
2

У меня проблема с циклом for внутри функции javascript. Переменная i не работает как аргумент для функции showAlbum(i). Почему это происходит?Javascript для переменной цикла не работает

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>"; 

ответ

4

Поскольку i завернутые в цитатах буквальный характер я, а не значение, удерживаемое в вашей i переменной. Вы должны оценить его вне цитат:

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

Спасибо за короткий и хорошо объяснил ответ. –

4

i находится в пределах строки буквальном, так что переменные не анализируется из строки.

Перерыв из строки, как так:

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

Попробуйте изменить форматирование:

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>'; 
Смежные вопросы