パーセンテージがたくさんあるテーブルがあります。私はDataTablesを使用してテーブルの大部分を並べ替えています。右端の列HEREをチェックすると、テキスト ベースのパーセンテージが正しく並べ替えられます。
問題は...それを削除して、その左側のCSSバー(2番目の右端の列)に置き換えたいです。これらの CSS バーを DataTables で並べ替えることができません。
これが私がそれぞれで使用するコード<td>
です...
<div id="positive">
<div class="anim" style="width:27%;">
<div class="text">27.05%</div>
</div>
</div>
HEREのパーセンテージ セクションのコードを使用して、右端の列で並べ替えるパーセンテージを取得しました。
上記のコードのすべての HTML タグを無視してパーセンテージだけで並べ替えるように DataTables を取得する方法はありますか?
ご協力いただきありがとうございます。さらに詳しい情報が必要な場合はお知らせください。
EDIT1:テキストの割合をソートするために使用されるコードは次のとおりです
jQuery.extend( jQuery.fn.dataTableExt.oSort,
{
"percent-pre": function ( a )
{
var x = (a == "-") ? 0 : a.replace( /%/, "" );
return parseFloat( x );
},
"percent-asc": function ( a, b )
{
return ((a < b) ? -1 : ((a > b) ? 1 : 0));
},
"percent-desc": function ( a, b )
{
return ((a < b) ? 1 : ((a > b) ? -1 : 0));
}
} );
そして、そのページの Datatables に使用するオプションを次に示します (必要に応じて変更できます)。
EDIT2:
$(document).ready(function()
{
$('#gradient-style').dataTable(
{
"bPaginate": true,
"aaSorting": [[ 7, "desc" ]],
"bJQueryUI": true,
"aLengthMenu": [[50, 100, 200, -1], [50, 100, 200, "All"]],
"iDisplayLength": 50,
"sPaginationType": "full_numbers",
"sDom": '<"H"lf>rt<"F"ip>',
"aoColumnDefs": [ { "bVisible": false, "aTargets": [ 0, 6 ] } ],
"aoColumns": [
null,
null,
null,
null,
null,
null,
null,
null,
null,
{ "sType": "percent" },
{ "sType": "percent" } ]
} );
} );
EDIT3:解決しました
これが私がしたことです...このページに移動します。と をマージ
Numbers with HTML
しPercentage
ます。edit1 コードで変更したコードは次のとおりです。
/* This cuts out the HTML */
var x = String(a).replace( /<[\s\S]*?>/g, "" );
return parseFloat( x );
/* This takes what's left, removes the % sign and sorts by that */
var y = (x == "-") ? 0 : x.replace( /%/, "" );
return parseFloat( y );