我正在使用Mottie的tablesorter分叉。我对javascript不是很有经验,但到目前为止,我已经完成了所有工作。这是问题所在: 现在我想在我的表上方有两个按钮,允许下载所有行或只下载所选行。
为此我有以下javascript代码部分工作。我只需要让它下载所有(!)行。
我做错了什么?
以下是输出所有内容的部分:
$('.downloadall').click(function(){
var $table = $('.tablesorter');
wo = $table[0].config.widgetOptions,
saved = $table.find('.output-filter-all :checked').attr('class');
wo.output_includeHTML = false;
wo.output_delivery = 'p';
// d = download p = page
wo.output_saveRows ='a';
// a = all f=filtered
$table.trigger('outputTable');
return false;
});
这非常有效,包括设置所有其他输出选项。 以下代码完全相同,但我想要的只是选定的行。
$('.downloadselected').click(function(){
var $table = $('.tablesorter');
wo = $table[0].config.widgetOptions,
saved = $table.find('.output-filter-all :checked').attr('class');
wo.output_includeHTML = false;
wo.output_delivery = 'p';
// d = download p = page
wo.output_saveRows = saved;
// a = all f=filtered
$table.trigger('outputTable');
return false;
});
我尝试过各种各样的东西,但没有运气。
答案 0 :(得分:1)
因为我无法告诉表格HTML会发生什么。我不知道saved
变量最终是什么,但似乎缺少为类名创建jQuery选择器的前导期。
wo.output_saveRows = '.' + saved;
无论如何,它让我觉得目前你不能根据其内容选择一行,所以我更新了saveRows
选项,现在接受filter callback function,截至撰写本文时,目前只有可在master branch中找到,可以按如下方式使用:
$('.downloadselected').click(function(){
var $table = $('.tablesorter'),
wo = $table[0].config.widgetOptions
wo.output_includeHTML = false;
wo.output_delivery = 'p';
wo.output_saveRows = function(){
// include row only if it has a checked checkbox
return $(this).find('input[type="checkbox"]:checked').length > 0;
};
$table.trigger('outputTable');
return false;
});
答案 1 :(得分:0)
我只是忽略了类名'.saved'当然不正确。最后,莫蒂指出了正确的方向。这是我原始问题的解决方案,只需使用正确的类名.checked和everthing按预期工作。:
$('.downloadselected').click(function(){
var $this =$('#table');
var $table = $('.tablesorter');
wo = $table[0].config.widgetOptions,
wo.output_includeHTML = false;
wo.output_delivery = 'p';
// d = download p = page
//saved = '.checked';
// a = all f=filtered
wo.output_saveRows = '.checked';
$table.trigger('outputTable');
return false;
});
它