4

我正在使用 jQuery 表格排序器插件,我想通过在千位上使用逗号分隔符来使我的表格更具可读性,即 number_format($value, 0, " ", ",");

但是,这会破坏排序。我一直在寻找解决方案(例如http://lab.christianmontoya.com/jquery-tablesort-numbers-commas/),但我没有设法调整它并适应我的桌子。我是脚本新手,所以请放纵一下。

我的 javascript 块应该是什么样的?

<head>
<script type="text/javascript">
    $(document).ready(function() { 
        $("#myTable").tablesorter( {
            sortList: [[1,1], [2,1]],
            widgets: ['zebra'],
        } );
    }); 
</script>
</head>


<body>
<table id="myTable" class="tablesorter"> 
<thead> 
<tr> 
<th>Username</th> 
<th>Level</th> 
<th>Experience</th> 
</tr> 
</thead> 
<tbody> 
<tr> 
<td>Fiery</td> 
<td><?php echo number_format(2400, 0, " ", ","); ?></td> 
<td><?php echo number_format(378433689, 0, " ", ",");?></td> 
</tr> 
<tr> 
<td>Sixten</td> 
<td><?php echo number_format(1600, 0, " ", ","); ?></td> 
<td><?php echo number_format(1000000000, 0, " ", ",");?></td> 
</tr> 
<tr>                    
<td>Penny</td> 
<td><?php echo number_format(885, 0, " ", ","); ?></td> 
<td><?php echo number_format(8900002, 0, " ", ","); ?></td> 
</tr> 
<tr>
<td>Petra</td> 
<td><?php echo number_format(2400, 0, " ", ","); ?></td> 
<td><?php echo number_format(398433889, 0, " ", ","); ?></td> 
</tr> 
<tr>
<td>Neu</td> 
<td><?php echo number_format(4974, 0, " ", ","); ?></td> 
<td><?php echo number_format(198433889, 0, " ", ","); ?></td> 
</tr> 
</tbody> 
</table>
</body>
4

1 回答 1

6

您需要将自定义格式应用于所需的标题/列:

标记:

<table id="myTable" class="tablesorter" border="0" cellpadding="0" cellspacing="1">
        <thead>
            <tr>
                <th>
                    Price
                </th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>
                    1,000.00
                </td>
            </tr>
            <tr>
                <td>
                    100,100.00
                </td>
            </tr>
            <tr>
                <td>
                    100,980.00
                </td>
            </tr>
            <tr>
                <td>
                    100,122.00
                </td>
            </tr>
            <tr>
                <td>
                    120,122.00
                </td>
            </tr>
            <tr>
                <td>
                    540,122.00
                </td>
            </tr>
            <tr>
                <td>
                    222,122.00
                </td>
            </tr>
            <tr>
                <td>
                    100,020.00
                </td>
            </tr>
            <tr>
                <td>
                    100,251.00
                </td>
            </tr>
            <tr>
                <td>
                    100,364.00
                </td>
            </tr>
            <tr>
                <td>
                    300,122.00
                </td>
            </tr>
        </tbody>
    </table>

jQuery:

    $(document).ready(function () {
        jQuery.tablesorter.addParser({
            id: "fancyNumber",
            is: function (s) {
                return /^[0-9]?[0-9,\.]*$/.test(s);
            },
            format: function (s) {
                return jQuery.tablesorter.formatFloat(s.replace(/,/g, ''));
            },
            type: "numeric"
        });

        $("#myTable").tablesorter({
            headers: { 0: { sorter: 'fancyNumber'} },
            widgets: ['zebra']
        });
    }); 

JSFiddle:http: //jsfiddle.net/eAgDC/

于 2013-02-19T19:49:16.967 回答