[英]pass value to onclick event for table row
我有一个在Ajax调用中创建的表行。 我想关联一个onlclick事件。 我无法从正在遍历的数组中传递元素(按照下面显示的代码,其d [i])所以我无法在click事件中获取数组元素
var d = $.parseJSON(data.codes);
for (var i = 0; i < d.length; i++) {
var currentRow = $('<tr>');
currentRow.append($('<td>').html(d[i].id));
currentRow.attr("class", "sourceCodeRow grid-row");
currentRow.append($('<td>').html(d[i].name));
currentRow.append($('<td>').html(d[i].description));
currentRow.click(function (f) {
//want to display name from d[i]
// alert(d[i].name);
});
$('#table-id').append(currentRow);
}
之所以不起作用,是因为您的for循环索引不再是您所期望的,因为单击该行后for循环已完成循环。 您需要将名称设置为可以在click事件内部访问的变量,我只需要将名称存储在数据中即可:
currentRow.data('name',d[i].name);
currentRow.click(function(f ) {
//want to display name from d[i]
alert($(this).data('name'));
});
或者,如果您需要访问整个对象,则只需进行设置即可:
currentRow.data('obj',d[i]);
currentRow.click(function(f ) {
//want to display name from d[i]
alert($(this).data('obj').name);
});
我认为您需要使用$(this)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.