在下面的html中,最后一列被排序为字符串,但我需要将其排序为十进制。我似乎可以找到文件来实现这一目标。 Javascript来自https://github.com/wenzhixin/bootstrap-table
<table id="table" data-toggle="table" data-search="true" data-show-columns="true" class="table table-striped">
<thead>
<tr>
<th data-sortable="true">Account</th>
<th data-sortable="true">1-30</th>
<th data-sortable="true">30+</th>
<th data-sortable="true">60+</th>
<th data-sortable="true">90+</th>
<th data-sortable="true">Unit Total</th>
<th data-sortable="true">Total</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="#">st0121</a></td>
<td>700.00</td>
<td>0.00</td>
<td>0.00</td>
<td>0.00</td>
<td>200.00</td>
<td>920.00</td>
</tr>
<tr>
<td><a href="#">st0122</a></td>
<td>1,200.00</td>
<td>0.00</td>
<td>0.00</td>
<td>8,000.00</td>
<td>0.00</td>
<td>9,200.00</td>
</tr>
<tr>
<td><a href="#">st0123</a></td>
<td>0.00</td>
<td>0.00</td>
<td>0.00</td>
<td>0.00</td>
<td>0.00</td>
<td>200.00</td>
</tr>
<tr>
<td><a href="#">st0124</a></td>
<td>160.00</td>
<td>0.00</td>
<td>0.00</td>
<td>0.00</td>
<td>160.00</td>
<td>360.00</td>
</tr>
<tr>
<td><a href="#">st0125</a></td>
<td>40.00</td>
<td>0.00</td>
<td>0.00</td>
<td>0.00</td>
<td>40.00</td>
<td>400.00</td>
</tr>
<tr>
<td><a href="#">st0126</a></td>
<td>80.00</td>
<td>0.00</td>
<td>0.00</td>
<td>0.00</td>
<td>80.00</td>
<td>480.00</td>
</tr>
</tbody>
</table>
小提琴是https://jsfiddle.net/cmzua2ph/3/
有任何想法/建议吗?
我也很惊讶不需要.ready()初始化。 这是如何实现的?
好的,我想我已经准备好了。 : - )
答案 0 :(得分:1)
我不知道如何更改HTML,
但我的解决方案是将代码注入bootstrap-table.js:
在bootstrap-table.js第952 - 953行,你会看到这段代码:
var aa = getItemField(a, name, that.options.escape),
bb = getItemField(b, name, that.options.escape),
将其更改为此代码:
var aa = getItemField(a, name, that.options.escape).replace(",",""),
bb = getItemField(b, name, that.options.escape).replace(",",""),
它基本上会在排序时删除所有逗号。
这是小提琴:
祝你好运答案 1 :(得分:0)
感谢Marcel的指针和这个链接:Validate decimal numbers in JavaScript - IsNumeric()我想我想出了一个更好的解决方案:从
更改bootstrap-table.js的第974行if($ .isNumeric(aa)&amp;&amp; $ .isNumeric(bb)){
到
if(!isNaN(parseFloat(aa))&amp;&amp;!isNaN(parseFloat(aa))){
似乎效果更好。