我在javascript函数中遇到了for循环问题。变量i
不作为函数showAlbum(i)
的参数。为什么会这样?
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>";
答案 0 :(得分:4)
i
在字符串文字中,因此不会从字符串中解析变量。
像这样突破字符串:
out += "<tr><td><a href=''onclick='showAlbum(" + i + ");' >"+
// ^^^^^^^^^
答案 1 :(得分:4)
因为引号中包含的i
是文字字符 i ,而不是i
变量中保存的值。您需要在报价之外对其进行评估:
out += "<tr><td><a href=''onclick='showAlbum(" + i + ");' >"
答案 2 :(得分: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>';