将值从循环传递给javascript函数

时间:2013-04-09 07:25:16

标签: javascript jquery json

我有以下代码:

var storedNames = JSON.parse(localStorage.name); 
var mytable = "<table> cellpadding=\"0\" cellspacing=\"0\"><tbody><tr>"; 
for (var i = 0; i < storedNames.length; i++) {   
  if (i % 2 == 1 && i != 1) {
     mytable += "</tr><tr>";   
  }

    mytable += "<td>" + storedNames[i].name +" "+ storedNames[i].email+"</td><td><img id='arrow' src='arrow.png' height='20' width='20' onclick='redirectToDetail();' ></td></tr>"; 
} 

mytable += "</tbody></table>";

document.write(mytable);

这里,在redirectToDetail函数中,我希望我重视。我怎么能通过这个? 任何的想法? 谢谢你提前

4 个答案:

答案 0 :(得分:1)

试试这个

 mytable += "<td>" + storedNames[i].name +" "+ storedNames[i].email+"</td><td><img id='arrow' src='arrow.png' height='20' width='20' onclick='redirectToDetail(\'"+ i +"\');' ></td></tr>";

并在redirectToDetail

中接受
 function redirectToDetail(val){
     alert(val);
  }

答案 1 :(得分:0)

试试这个

onclick='redirectToDetail(\'"+i+"\')

答案 2 :(得分:0)

我认为这样做。检查一下。

mytable += "<td>" + storedNames[i].name +" "+ storedNames[i].email+"</td><td><img id='arrow' src='arrow.png' height='20' width='20' onclick='redirectToDetail(" + i + ");' ></td></tr>";

答案 3 :(得分:0)

只需将值添加为传递给onclick事件的文字常量,即可免费回家。另外,我强烈建议您考虑使用数组并加入字符串,因为您将获得更好的性能,尤其是在IE中。

var storedNames = JSON.parse(localStorage.name); 
var mytable = ['<table cellpadding="0" cellspacing="0"><tbody><tr>'];
for (var i = 0; i < storedNames.length; i++) {   
  if (i % 2 == 1 && i != 1) {
     mytable.push("</tr><tr>");   
  }
  mytable.push('<td>' + storedNames[i].name + ' ' + storedNames[i].email + '</td><td><img id="arrow" src="arrow.png" height="20" width="20" onclick="redirectToDetail(' + i + '"></td></tr>"');
} 

mytable.push("</tbody></table>");

document.write(mytable.join());

现在你可以像这样声明你的onclick函数:

function redirectToDetail(value) {
   //do stuff with the value
}