如何对数据表中的容量列进行排序

丽莎

我有一个容量表像这样的数据表:

<table id="datatable" class="table">
<thead> <tr> <th>N</th> <th>capa</th> </tr> </thead>
<tbody>
    <tr>
        <td>1</td>
        <td>2 Go</td>
    </tr>
    <tr>
        <td>2</td>
        <td>1 To</td>
    </tr>
    <tr>
        <td>3</td>
        <td>320 Go</td>
    </tr>
    <tr>
        <td>4</td>
        <td>2 To</td>
    </tr>
    <tr>
        <td>5</td>
        <td>500 Go</td>
    </tr>
</tbody>
</table>

<script>
$(document).ready(function() {
    $('#datatable').dataTable({
    'aaSorting': [],
    'iDisplayLength': 50,
    'aLengthMenu': [[10, 25, 50, 100, 500, -1], [10, 25, 50, 100, 500, 'Tous']]
    });
}); 
</script>

我正在尝试对其进行排序以得到以下结果:

2 Go
320 Go
500 Go
1 To
2 To

但是无法通过阅读排序插件文档来弄清楚该如何做。

谢谢

丽莎

谢谢大家。我正在回答最适合我的答案。

jQuery.extend(jQuery.fn.dataTableExt.oSort, {
"file-size-pre": function (a) {
    var x = a.substring(0, a.length - 2);
    var x_unit = (a.substring(a.length - 2, a.length) == "Go" ? 1000 : (a.substring(a.length - 2, a.length) == "To" ? 1000000 : 1));
    return parseInt(x * x_unit, 10);
},
    "file-size-asc": function (a, b) {
    return ((a < b) ? -1 : ((a > b) ? 1 : 0));
},
    "file-size-desc": function (a, b) {
    return ((a < b) ? 1 : ((a > b) ? -1 : 0));
}
});

$(document).ready(function () {
$('#datatable').dataTable({
    'columnDefs': [{ 'type': 'file-size', 'targets': 1 }],
        'aaSorting': [],
        'iDisplayLength': 50,
        'aLengthMenu': [ [10, 25, 50, 100, 500, -1],  [10, 25, 50, 100, 500, 'Tous'] ]
});
});

这是一个小提琴:http : //jsfiddle.net/cu9taqfg/1/

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章