Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquerydatatables在更新值上使用过滤器_Javascript_Jquery_Html_Datatables - Fatal编程技术网

Javascript jquerydatatables在更新值上使用过滤器

Javascript jquerydatatables在更新值上使用过滤器,javascript,jquery,html,datatables,Javascript,Jquery,Html,Datatables,我有一个jquery移动应用程序,它由一个表组成。 该表包含一个时间字段和一些数字字段。 它们的统计数据是静态的,因为数据不会更改,我可以按名称或数字筛选表 然后我决定增加表中显示的值 用于更新值的代码 function UpdateFunction(){ $(".updateMeInt").each(function(index){ var cur = parseInt($(this).text(), 10); $(this).text(cur + 1);

我有一个jquery移动应用程序,它由一个表组成。 该表包含一个时间字段和一些数字字段。 它们的统计数据是静态的,因为数据不会更改,我可以按名称或数字筛选表

然后我决定增加表中显示的值

用于更新值的代码

function UpdateFunction(){
    $(".updateMeInt").each(function(index){
       var cur = parseInt($(this).text(), 10);
       $(this).text(cur + 1);    
    });

    $(".updateMeTime").each(function(index){
        var cur = $(this).text().split(":");    
        var sec = parseInt(cur[1], 10);        
        var min = parseInt(cur[0], 10);

        sec = sec + 3;
        if (sec >= 60){
             sec = 0
             min = min + 1;
        }
        $(this).text(pad(min) + ":" + pad(sec)); 

    });
}  

function pad(num) {
    var s = "0" + num;
    return s.substr(s.length-2);
}
但是问题是,现在我无法筛选更新的值


有人能告诉我为什么会这样以及如何解决这个问题吗

您需要更新
dataTable
以及
html

例如,使用函数更新整数单元格:

$(".updateMeInt").each(function(index)
{
    var cur = 1+ parseInt($(this).text(), 10);
    var oTable = $('#example').dataTable();       

    oTable.fnUpdate(cur, $(this).parent('tr')[0], $(this).index());
});
在上面的例子中,
fnUpdate
()被传递给新的单元格值、父
tr
-元素和单元格索引

你的第二个朋友


但是您现在可能会注意到,一旦过滤了内容,只有可见的行会继续更新。可能是您正计划从
ajax
调用或其他方式获取动态数据;在这种情况下,您最好在更新时完全销毁旧的
dataTable

然而,根据您当前的示例,以下
UpdateFunction()
还应该更新隐藏在
数据表中的过滤行:

function UpdateFunction()
{
    var oTable = $('#example').dataTable();
    var nNodes = oTable.fnGetNodes();

    $.each(nNodes, function(index,node)
    {
        $(node).children(".updateMeInt").each(function(index)
        {
           var cur = 1+ parseInt($(this).text(), 10);       
           oTable.fnUpdate(cur,node,$(this).index());
        });            

        $(node).children(".updateMeTime").each(function(index)
        {
            var cur = $(this).text().split(":");    
            var sec = 3+ parseInt(cur[1], 10);        
            var min = parseInt(cur[0], 10);

            if (sec >= 60)
            {
                min+=1;
                sec%=60;
            }

            var newval=pad(min) + ":" + pad(sec);
            oTable.fnUpdate(newval,node,$(this).index());
        });            
    });
}  

在一个JSFIDLE中。

嗨,我发布了一个新问题,我非常关注这个问题。你能不能帮我处理好数据表。