2

我有一个在 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);
}
4

2 回答 2

1

这不起作用的原因是您的 for 循环索引不再是您所期望的,因为一旦单击该行,for 循环就完成了循环。您需要将您的名称设置为可以在点击事件中访问的变量,我只需将名称存储在数据中:

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);

});
于 2013-02-02T00:18:18.843 回答
0

我认为您需要使用 $(this)

于 2013-02-02T00:25:21.310 回答