簡體   English   中英

將值傳遞給表行的onclick事件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM