別のオプションは、UL
/LI
をtable
オンザフライに変更してから添付することdataTables()
です。この例では、任意のターゲットを にdataList
変換するという jQuery 拡張メソッドを追加します(ただし、既存のテーブルはそのままにします)。ULs
TABLE
JSFiddle: http://jsfiddle.net/TrueBlueAussie/r5xf61zp/5/
$.fn.dataList = function (options) {
this.each(function () {
var $table = $(this);
if ($table.is('ul')) {
var $ul = $table;
$table = $ul.wrap('<table><tbody/></table').closest('table');
$ul.find('li').wrap('<tr><td/></tr>').contents().unwrap();
$ul.contents().unwrap()
$table.prepend('<thead><tr><th>Heading</th></tr></thead>');
}
$table.dataTable(options);
});
}
そして、次のように使用します.dataTable()
:
$('.example').dataList({
"sPaginationType": "full_numbers"
});
唯一の未解決の問題は、見出しに何を表示するかです (現在Heading
の例:)
更新 - (追加された見出しのサポート)
これを再検討して、見出しを提供する最善の方法は のdata-heading
属性を使用することであると判断しましたUL
。
HTML での例:
<ul class="example" data-heading="My new heading">
コード:
$.fn.dataList = function (options) {
this.each(function () {
var $table = $(this);
if ($table.is('ul')) {
var $ul = $table;
$table = $ul.wrap('<table><tbody/></table').closest('table');
$ul.find('li').wrap('<tr><td/></tr>').contents().unwrap();
$ul.contents().unwrap()
$table.prepend('<thead><tr><th>' + ($ul.data('heading') || '') + '</th></tr></thead>');
}
$table.dataTable(options);
});
}
JSFiddle: http://jsfiddle.net/TrueBlueAussie/r5xf61zp/8/