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

DataTable点击qtemp类单元格取值返回undefined问题求助

问题解决:DataTable动态表格点击单元格获取值返回undefined

核心错误原因

你遇到的undefined问题,和表格动态生成无关,直接原因是jQuery对象的属性使用错误:

  • $(this)是jQuery包装后的对象,它没有原生DOM的innerHTML属性,直接访问会返回undefined。
  • 事件绑定范围过大,当前代码监听所有td的点击,但你只需要处理带有qtemp类的单元格。

解决方案1:修正内容获取方式+缩小监听范围

修改事件选择器,只监听qtemp类的单元格,同时用正确的方式获取单元格内容:

$('#data tbody').on('click', 'td.qtemp', function () {
    // 方式1:用原生DOM元素获取内容
    var layout = this.innerHTML;
    // 方式2:用jQuery方法获取内容
    // var layout = $(this).html();

    $.ajax({
      url: "/workstation",
      type: "get",
      data: {layout: layout},
      success: function(response) {
        var new_html = response.html;
        alert(layout);
      },
    });
});

解决方案2:使用DataTable官方API获取数据(更可靠)

对于DataTable生成的动态表格,官方API能直接获取行数据,避免HTML结构变化导致的问题:

$('#data tbody').on('click', 'td.qtemp', function () {
    // 获取当前单元格所在行的完整数据
    var rowData = table.row($(this).closest('tr')).data();
    // 直接取对应字段的值(和你列定义的data属性一致)
    var layout = rowData.DLin;

    $.ajax({
      url: "/workstation",
      type: "get",
      data: {layout: layout},
      success: function(response) {
        var new_html = response.html;
        alert(layout);
      },
    });
});

注意:这里的table是你初始化DataTable时定义的变量,要确保它在事件绑定的作用域内可访问。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 15:06:16