【问题标题】:Jquery find function not working when paging allowed in datatables plugin数据表插件中允许分页时,Jquery查找功能不起作用
【发布时间】:2021-02-13 16:03:01
【问题描述】:

我之前在实现其他情况时成功使用了数据表,但是当我启用分页时,我在循环其他行时遇到了问题。

我正在使用一个使用 Jquery 的查找函数来循环遍历表中的行,但它只遍历显示的行并且不会转到数据表的第二页。

这是一个工作小提琴https://jsfiddle.net/czarluc/5cm7rgvy/

这是我使用的函数。

function getTotalRows(){
  var counter = 0;
    $("#item_table").find('tr.tablerow').each(function (i, el) {
      counter += 1;
    });
  return counter
  }

总共有 20 行,但是当我执行函数时它只返回 5。

是否有其他可用的功能或实现?

编辑:如果我禁用了分页,这将正常工作,但我只想看看如何让它在启用分页的情况下工作。

【问题讨论】:

    标签: javascript jquery datatables jquery-plugins


    【解决方案1】:

    看来我使用了错误的功能。我提出这个以防万一有人遇到同样的问题。

    要访问数据表中的行,请使用 rows().node() 函数而不是 Jquery find 函数,然后使用 foreach 函数遍历行。还将引用数据存储到一个变量中,然后使用它来访问 rows().node() 函数。

    这是正确的代码。

    var table = $("#item_table").DataTable({
        pageLength : 5,
        lengthMenu: [[5, 10, 20, 50], [5, 10, 20, 50]],
        "columnDefs": [ {"className": "text-center", "targets": "_all"} ]
      });
    
    function getTotalRowsv2(){
      var counter = 0;
        $(table.rows().nodes()).each(function(i, el){
          counter += 1;
        });
      return counter;
      }
    
    

    无论分页如何,此函数都会遍历所有行。它还按预期返回 20。这是文档链接。 https://datatables.net/reference/api/rows().nodes()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-21
      • 2017-10-27
      • 1970-01-01
      • 2013-01-30
      • 1970-01-01
      • 2011-12-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多