私はテンプレートを使用しています。これには、class="datatable" を持つすべてのテーブルが jQuery データテーブルに変換されるという優れた機能があります。
$(".datatable").dataTable();
ここで、さまざまな種類のデータをテーブルに入れてみましたが、金額とパーセンテージの列が数値ではなくテキストとして並べ替えられていることに気付きました。金額とパーセンテージでソートするためのプラグインを追加しました (こちらを参照) が、適用されていません。
ここで尋ねられたことと同様のことをしたいと思います。つまり、オーバーライドする必要があるいくつかの列の sType をタグで指定します。ただし、ID ではなくクラスを使用して関数を適用しているため、sType 属性をスキャンしてクラスの特定のインスタンスに基づいて検索する提案されたソリューションをどのように変更すればよいでしょうか?
$(".datatable").each(function() {
var aoColumns = [];
$(this).children("th").each(function() {
var sType = $(this).getAttribute("data-sType");
aoColumns.push(sType ? { "sType" : sType } : null);
});
//$(this).dataTable();
$(this).dataTable(
{
"aoColumns" : aoColumns
}
);
});
Cannot read property 'asSorting' of undefined
これで発生する問題は、aoColumns オプションを指定して実行すると継続的にエラーが発生することですが、オプションを指定せずに実行すると機能します (並べ替え機能を除く)。