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

JQuery排序后重编序号:如何修改表格单元格内input的value值?

表格排序后重编Order列序号的正确写法

你这段代码里有两个小问题:一是重复初始化了sortable组件,二是获取input元素的链式调用写法错误。咱们来一步步修正:

首先,你不需要分开两次调用$("#sortable").sortable(),可以把排序的配置(比如cursor)和排序结束后的回调(stop)合并到同一个初始化里,这样代码更简洁也避免重复绑定。

然后重点说你出错的那行代码:$(this).find('td:last').$(this).find('input')这种写法是不合法的,jQuery对象后面不能直接接$(this),你需要连贯地用链式查找定位到input元素。

下面是修正后的完整代码:

$(function() {
  $("#sortable").sortable({
    cursor: "move",
    stop: function (event, ui) {
      // 遍历排序后的每一行
      $(this).find('tr').each(function(index){
        // 正确定位最后一列的input并设置序号
        $(this).find('td:last input').val(index + 1);
      });
    }
  }).disableSelection();
});

额外说明:

  • 这里的$(this).find('td:last input')直接从当前行(tr)里找到最后一列的input元素,写法简洁且正确
  • 如果你的"Order"列不是固定在最后一列,建议给该列的td加一个专属class(比如class="order-col"),这样即使列顺序调整,代码也能正常工作:
    $(this).find('td.order-col input').val(index + 1);
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:41:19