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

如何解决jQuery DataTable分页后第一页外无法获取行属性值的问题

问题原因

你当前的写法是直接将点击事件绑定到页面初始加载时已存在的<td>元素上,jQuery DataTable在切换分页时会动态生成/销毁分页对应的表格DOM,新渲染出来的<td>没有绑定过点击事件,因此切换分页后点击失效。

解决方案

使用jQuery的事件委托机制,将事件绑定到页面加载完成后就一直存在的父级元素上(越靠近目标元素性能越好,这里可以直接选表格的<tbody>),再指定触发事件的目标元素为<td>,这样所有动态生成的<td>都会触发该事件。
另外你原代码里的两个$(document).ready可以合并,不需要重复声明。

修正后代码

$(document).ready(function() {
  // 初始化DataTable
  $('#table_id').DataTable();
  // 用事件委托绑定td点击事件
  $('#table_id tbody').on('click', 'td', function() {
      var id = $(this).attr('id');
      console.log(id);
  })
});

补充注意事项

你的HTML代码中存在大量重复的id属性,按照规范同一个HTML页面内的id必须是唯一值,如果你只是需要给单元格存储自定义标识,建议替换为data-*自定义属性,比如<td data-id="one">,取值时使用$(this).data('id')即可,避免id重复导致的其他未知问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 13:24:03