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
Jquery 使用某些条件对表进行排序_Jquery_Datatables - Fatal编程技术网

Jquery 使用某些条件对表进行排序

Jquery 使用某些条件对表进行排序,jquery,datatables,Jquery,Datatables,JQuery的文档非常差。很抱歉问了一个微不足道的问题 我想按某列上的某个字符串筛选我的表。这是我的密码: var str = "days"; my_table.fnFilter(str, 9); 我希望只有在第9列(从0开始计数)包含“天”字符串的行。但上面的代码并没有给我带来结果 我已尝试将此代码用于RexEx: var regEx = "days"; my_table.fnFilter(regEx, 9, true); 此代码: var regEx = "^days$"; my_ta

JQuery的文档非常差。很抱歉问了一个微不足道的问题

我想按某列上的某个字符串筛选我的表。这是我的密码:

var str = "days";
my_table.fnFilter(str, 9);
我希望只有在第9列(从0开始计数)包含“天”字符串的行。但上面的代码并没有给我带来结果

我已尝试将此代码用于RexEx:

var regEx = "days"; 
my_table.fnFilter(regEx, 9, true);
此代码:

var regEx = "^days$";
my_table.fnFilter(regEx, 9, true);
var regEx = ".*days.*";
my_table.fnFilter(regEx, 9, true);
该代码:

var regEx = "^days$";
my_table.fnFilter(regEx, 9, true);
var regEx = ".*days.*";
my_table.fnFilter(regEx, 9, true);
一切都没有运气。我确信我的表在第9列有“101天”字符串。我做错了什么

更新:我的列有自定义类型:

jQuery.fn.dataTableExt.oSort['days-asc'] = function (a, b) {
    var x = parseInt((trim(a) == "") ? 0 : trim(a.replace(/days/, "")));
    var y = parseInt((trim(b) == "") ? 0 : trim(b.replace(/days/, "")));
    return ((x < y) ? -1 : ((x > y) ? 1 : 0));
};

jQuery.fn.dataTableExt.oSort['days-desc'] = function (a, b) {
    var x = parseInt((trim(a) == "") ? 0 : trim(a.replace(/days/, "")));
    var y = parseInt((trim(b) == "") ? 0 : trim(b.replace(/days/, "")));
    return ((x < y) ? 1 : ((x > y) ? -1 : 0));
};
jQuery.fn.dataTableExt.oSort['days-asc']=函数(a,b){
var x=parseInt((trim(a)==“”)0:trim(a.replace(/days/,“”));
变量y=parseInt((trim(b)==”)?0:trim(b.replace(/days/,”));
回报率((xy)?1:0);
};
jQuery.fn.dataTableExt.oSort['days-desc']=函数(a,b){
var x=parseInt((trim(a)==“”)0:trim(a.replace(/days/,“”));
变量y=parseInt((trim(b)==”)?0:trim(b.replace(/days/,”));
回报率((xy)?-1:0);
};
更新2: 表的我的初始化选项:

 $.my_table = $("#myTable").dataTable({
    "iDisplayLength": 10,
    "bStateSave": false,
    "bFilter": true,
    "bSort": true,
    "bAutoWidth": false,
    "oLanguage": {
        "sLengthMenu": sStdMenu + " per page"
    },
    "sPaginationType": "full_numbers",
    "sDom": 'rti<"bottom2"p><"bottom1"l',
    "aaSorting": [
        [0,'asc']
    ],
    "aoColumns": [
        { "sType": "html-trimmed" },
        { "sType": "date-direct" },
        { "sType": "date-direct" },
        { "sType": "html" },
        { "sType": "percent" },
        { "sType": "money" },
        { "sType": "money" },
        { "sType": "money" },
        { "sType": "days" },            
        { "sType": "days" },
        { "sType": "days" },
        { "sType": "days" },
        { "sType": "days" },
        { "sType": "days" },
        { "sType": "html" },
        { "sType": "html" },
        null,
        null,
        null
    ]

});
$.my_table=$(“#myTable”).dataTable({
“iDisplayLength”:10,
“bStateSave”:false,
“bFilter”:没错,
“bSort”:正确,
“bAutoWidth”:假,
“语言”:{
“SLENGHTMENU”:sStdMenu+“每页”
},
“sPaginationType”:“完整编号”,

“sDom”:“rti我看不出您的初始化代码或
fnFilter
函数的语法有任何错误。如果有帮助,下面是
fnFilter
函数的完整示例,所有参数都设置为默认值(除了
filterString
):

此外,在一个完全不相关的注释中,您的排序功能可以简化为:

jQuery.fn.dataTableExt.oSort['days-asc'] = function (a, b) {
    var x = parseInt(a, 10) || 0,
        y = parseInt(b, 10) || 0;
    return x - y;
};
jQuery.fn.dataTableExt.oSort['days-desc'] = function (a, b) {
    var x = parseInt(a, 10) || 0,
        y = parseInt(b, 10) || 0;
    return y - x;
};

您能给我们看一下您的
dataTable
初始化选项吗?