You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将表格行的data-id值传递给JavaScript函数?

解决表格行点击传递ID的问题

我来帮你搞定这个传递ID的问题,你的代码现在的问题主要是调用函数时没传参数,而且参数命名也不符合JS规范(data-id不能作为变量名),下面给你两种靠谱的解决方案:

方法一:直接传递ID参数(简单直接)

修改fisYukle函数里的表格行拼接代码,把当前行的dt.ID直接作为参数传给fisAyrinti:

function fisYukle(dt) {
  $('#tblFisList').empty();
  $.each(dt, function (i, item) { // 把循环内的变量名改成item,避免和外层dt重名
    $('#tblFisList').append(`<tr onclick='fisAyrinti(${item.ID});return false;'>
      <td>${item.ID}</td>
      <td>${item.Evrakno}</td>
      <td>${item.EvrakTarih}</td>
      <td>${item.MagazaAd}</td>
      <td>${item.Tutar}</td>
    </tr>`);
  })
}

然后修改fisAyrinti函数,用合法的变量名接收参数:

function fisAyrinti(fisId) {
  $('#fisGizliID')[0].innerText = fisId;
  $('#modal1').modal('open');
}

方法二:通过事件对象获取(更健壮,推荐)

这种方法不需要直接拼接参数,而是利用事件对象获取当前点击行的属性,适合ID包含特殊字符的场景:
首先修改fisYukle的拼接代码,把data-id绑定到<tr>上(点击的是整行,放在tr上更合理):

function fisYukle(dt) {
  $('#tblFisList').empty();
  $.each(dt, function (i, item) {
    $('#tblFisList').append(`<tr data-id='${item.ID}' onclick='fisAyrinti(event);return false;'>
      <td>${item.ID}</td>
      <td>${item.Evrakno}</td>
      <td>${item.EvrakTarih}</td>
      <td>${item.MagazaAd}</td>
      <td>${item.Tutar}</td>
    </tr>`);
  })
}

然后修改fisAyrinti函数,通过事件对象拿到当前行的ID:

function fisAyrinti(event) {
  // 获取当前点击的行元素
  const clickedRow = event.currentTarget;
  // 获取data-id的值(两种方式任选其一)
  const fisId = clickedRow.getAttribute('data-id');
  // 或者用jQuery的方式:const fisId = $(clickedRow).data('id');
  
  $('#fisGizliID')[0].innerText = fisId;
  $('#modal1').modal('open');
}

这种方法的优势是:如果你的ID是字符串类型(比如带字母或特殊符号),直接拼接参数可能会出语法问题,而通过事件对象获取就不会有这个隐患。

内容的提问来源于stack exchange,提问作者serhathss

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:29:09