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

使用jQuery无法获取HTML表格中QTY输入框所在列的索引或表头名

问题分析与解决方案

问题原因

你的代码存在两个核心问题:

  • 事件绑定在#table-id表格元素上,此时$(this)指向的是整个表格,不是触发事件的输入框,所以$(this).closest("td")无法定位到输入框所在的单元格,导致索引计算错误。
  • index是jQuery的方法,需要通过.index()调用,而不是直接访问属性index。

修复后的代码

获取列索引

$('#table-id').on('keypress', 'input', function (ev) {
    var keycode = ev.keyCode || ev.which;
    if (keycode === 13) {
        // 获取当前输入框所在的td
        var $td = $(this).closest('td');
        // 获取该td在父行中的列索引(从0开始)
        var columnIndex = $td.index();
        console.log('列索引:', columnIndex);
    }
});

获取表头名称(QTY)

如果需要直接获取表头文本,可在获取列索引后,找到对应表头单元格的内容:

$('#table-id').on('keypress', 'input', function (ev) {
    var keycode = ev.keyCode || ev.which;
    if (keycode === 13) {
        var $td = $(this).closest('td');
        var columnIndex = $td.index();
        // 获取表格的thead行,找到对应索引的表头单元格文本
        var headerText = $('#table-id thead tr th').eq(columnIndex).text().trim();
        console.log('表头名称:', headerText);
    }
});

关键说明

  • 事件委托到表格内的input元素,确保$(this)指向触发回车事件的输入框。
  • 使用函数参数ev获取按键码,避免依赖全局event对象的兼容性问题。
  • 通过eq(columnIndex)精准定位对应索引的表头单元格,再用text()获取文本内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 02:31:59