私はゴールという名前の列を持つテーブルを持っています。そのテーブルは次のようにルビで埋められます:
<table data-sorted="myTable">
<thead>
<tr>
<th><a rel="tooltip" title="Name">Name</a></th>
<th>subname</th>
<th>Days</th>
<th>%</th>
<th>Goal</th>
<th>achieved</th>
</tr>
</thead>
<tbody>
<% @results.each do |id, rows| %>
<% rows.each do |row| %>
<tr>
<td>
<b><%= row[:name] %></b></td>
<td><%= row[:subname] %></td>
<td><%= row[:days] %></td>
<td class="<%= status_indicator(row[:percentage].to_f) %>"><%= number_to_percentage(row[:percentage], :precision => 2)%></td>
<td class="{sorter: 'thousands'}"="<%= row[:goal].to_i %>"><%=number_with_delimiter(row[:goal].to_i) %></td>
<td class="achieved"><%= row[:achieved].to_i %></td>
</tr>
<% end %>
<% end %>
</tbody>
</table>
私のオンライン調査によると、これはjqueryにあります。
$.tablesorter.addParser({
// set a unique id
id: 'thousands',
is: function(s) {
// return false so this parser is not auto detected
return /^[0-9]?[0-9,\.]*$/.test(s);
},
format: function(s) {
// format your data for normalization
return jQuery.tablesorter.formatFloat( s.replace(/,/g,'') );
},
// set type, either numeric or text
type: 'numeric'
});
$(function() {
$("[data-sorted=myTable]").tablesorter({
headers: {
6: {//zero-based column index
sorter:'thousands'
}
}
});
});
並べ替えはテーブルのすべての列で機能しますが、1000 の区切り記号がある列では、結果としてこれが得られます
- これは、ロード時にテーブルが開始される方法です
- これは、ソート時にテーブルがどのようにレンダリングされるかです