【问题标题】:JQuery exclude thead when reading rows in <table>JQuery在读取<table>中的行时排除thead
【发布时间】:2016-10-15 14:07:11
【问题描述】:

我有一个表或行,每一行都有一个data-id 值。 该表是可排序的。 我需要按照表格所在的正确顺序获取 data-id 值的列表,并将它们返回给我的控制器以重新分配项目的优先级。

所以我尝试创建一个函数,它遍历每一行并构建一个逗号分隔的字符串。

 function GetOrder()
    {
        var ordered;
        $("#debt_list tr").each(function () {
            var id = $(this).data("id");
            if(id != 'NaN')
                ordered = ordered + id + ',';
        });
        var result = ordered.replace(/(^,)|(,$)/g, "");
        return result;
    }

我首先面临的问题是,当我“警告”结果时,我的第一个项目是“NaN”。所以,我的结果如下:

"NaN,12,7,2,1"

我认为这是因为它正在读取没有数据 ID 的“标题”行。可能是因为$("#debt_list tr") 行。

我可以阻止它读取标题吗?或者也许我需要为每一行分配一个类?糟糕的解决方法可能是在标题中添加一个 data-id=0 并忽略它?

而且我对 jquery 还是很陌生 - 这是我想要做的 OK 代码吗?

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    您还可以执行以下操作以排除标题并仅通过 $("#debt_list tbody tr") 访问 tbody 的行 并且您的代码中还有另一个错误,您没有为有序变量定义任何内容并尝试访问它,因此它返回 NAN

     function GetOrder()
        {
            var ordered="";
            $("#debt_list tbody tr").each(function () {
                var id = $(this).data("id");
             
                if(id != 'NaN')
                    ordered = ordered + id + ',';
            });
       
            var result = ordered.replace(/(^,)|(,$)/g, "");
           
        }

    希望对你有帮助

    【讨论】:

    • @craig...让我们知道它是否有效以及是什么让它有效
    • 这很完美,而且很有教育意义。似乎 $(....) 可以通过添加类来过滤到您真正关心的组件。这似乎与说“其中类是一个debt_list,是一个tbody,是一个tr”是一样的。谢谢。
    【解决方案2】:

    要排除标题行,请更改您的选择器,如下所示:#debt_list tr:not(:first-child)

    NaN 不是字符串,请将您的测试从 if(id != 'NaN') 更改为 if (!isNaN(id))

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-06
      • 2013-10-20
      • 1970-01-01
      • 2012-10-06
      • 1970-01-01
      • 1970-01-01
      • 2011-04-30
      • 2019-11-27
      相关资源
      最近更新 更多