Javascript for循环变量不起作用

时间:2016-04-08 13:06:09

标签: javascript loops for-loop onclick

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

3 个答案:

答案 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>';