我有一个表格行,我正在Ajax调用上创建。我想关联一个onlclick事件。我无法从我正在遍历的数组中传递一个元素(根据下面的代码,d [i]) 所以我无法在点击事件中获取数组元素
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);
}
答案 0 :(得分:1)
这不起作用的原因是因为你的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);
});
答案 1 :(得分:0)
我认为你需要使用$(this)