Jquery 使用某些条件对表进行排序
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
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
初始化选项吗?