将 class 添加到 TableSorter 过滤器小部件输入?
Adding class to TableSorter filter widget inputs?
有没有人知道如何将唯一 class 添加到过滤器小部件的输入字段。
我得到了动态 table,其中包含一些隐藏的列,用户可以在他们身边添加或删除这些列以及显示的默认列。
我用 JQuery 完成了:
$( "#table tr td > input" ).each(function( i ) {
$(this).attr('id', 'column' + i);
$(this).append('<input id=\"column' +i+'\"></input>');
var script=document.createElement('script');
script.type='text/javascript';
$(this).find('input').append(script);
});
但是,有一个问题。当我添加一个隐藏列或删除一个隐藏列时,id 为 column6 的列变为 id 为 column5 的列,反之亦然。
关于如何解决这个问题有什么想法吗?我需要始终在过滤器小部件输入上输入特定 ID 或 class。
谢谢...
您可以使用 filter_cssFilter
option 为每个过滤器输入的每列设置不同的 class 名称。
$(function(){
$("table").tablesorter({
widgets: [ "filter" ],
widgetOptions: {
// css class applied to the inputs within the filter row
// string (applied to all), array (applied to individual)
filter_cssFilter: [ "filter0", "filter1", "filter2" ] // etc...
}
});
});
更新:也许包括 header 文本会更好? (demo)
CSS(添加input.tablesorter-filter
以提高特异性)
input.tablesorter-filter.filter-AlphaNumeric { border-color: red; }
input.tablesorter-filter.filter-Numeric { border-color: green; }
input.tablesorter-filter.filter-Animals { border-color: blue; }
input.tablesorter-filter.filter-Sites { border-color: purple; }
脚本
$(function() {
var filterArray = [];
$('thead th').each(function(){
filterArray.push('filter-' + $(this).text().replace(/\s/g,"-"));
});
$('table').tablesorter({
theme: 'blue',
widgets: ['zebra', 'filter'],
widgetOptions: {
filter_cssFilter: filterArray
}
});
});
有没有人知道如何将唯一 class 添加到过滤器小部件的输入字段。
我得到了动态 table,其中包含一些隐藏的列,用户可以在他们身边添加或删除这些列以及显示的默认列。
我用 JQuery 完成了:
$( "#table tr td > input" ).each(function( i ) {
$(this).attr('id', 'column' + i);
$(this).append('<input id=\"column' +i+'\"></input>');
var script=document.createElement('script');
script.type='text/javascript';
$(this).find('input').append(script);
});
但是,有一个问题。当我添加一个隐藏列或删除一个隐藏列时,id 为 column6 的列变为 id 为 column5 的列,反之亦然。
关于如何解决这个问题有什么想法吗?我需要始终在过滤器小部件输入上输入特定 ID 或 class。
谢谢...
您可以使用 filter_cssFilter
option 为每个过滤器输入的每列设置不同的 class 名称。
$(function(){
$("table").tablesorter({
widgets: [ "filter" ],
widgetOptions: {
// css class applied to the inputs within the filter row
// string (applied to all), array (applied to individual)
filter_cssFilter: [ "filter0", "filter1", "filter2" ] // etc...
}
});
});
更新:也许包括 header 文本会更好? (demo)
CSS(添加input.tablesorter-filter
以提高特异性)
input.tablesorter-filter.filter-AlphaNumeric { border-color: red; }
input.tablesorter-filter.filter-Numeric { border-color: green; }
input.tablesorter-filter.filter-Animals { border-color: blue; }
input.tablesorter-filter.filter-Sites { border-color: purple; }
脚本
$(function() {
var filterArray = [];
$('thead th').each(function(){
filterArray.push('filter-' + $(this).text().replace(/\s/g,"-"));
});
$('table').tablesorter({
theme: 'blue',
widgets: ['zebra', 'filter'],
widgetOptions: {
filter_cssFilter: filterArray
}
});
});