0
このテーブルをソートする必要がありますが、PercentageとNumbersカラムは奇妙な方法でソートされています。それは数値ではなく文字列としてソートします。 私はたくさんのGoogle検索を行い、parseInt、parseFloat、およびnumberを使用しようとしましたが、以下のコードは私が得ることができる最高です。番号としてテーブルの列を並べ替えるには? (JavaScriptのみ)
これらの列(名前列ではない)だけを数値に変換する方法はありますか。
申し訳ありませんが質問のnoobだと、私はコーディングの初心者です。 : -/
var tabela, asc1 = 1, asc2 = 1, asc3 = 1;
window.onload = function() {
tabela = document.getElementById("table");
}
function sort_table(tbody,col,asc) {
var rows = tbody.rows,
rlen = rows.length,
arr = new Array(),
i, j, cells, clen;
for (i=0 ; i<rlen ; i++){
cells = rows[i].cells;
clen = cells.length;
arr[i] = new Array;
for(j=0; j<clen ; j++){
arr[i][j] = cells[j].innerHTML;
}
}
arr.sort(function(a, b){
return (a[col] == b[col]) ? 0 : ((a[col] > b[col]) ? asc : -1 * asc);
});
for (i=0; i<rlen ; i++){
rows[i].innerHTML = "<td>" + arr[i].join("</td><td>") + "</td>";
}
}
<table class="table">
<thead>
<th onclick="sort_table(table,0,asc1);asc1 *= -1;asc2 = 1; asc3 = 1;">Number</th>
<th onclick="sort_table(table,1,asc2);asc2 *= -1;asc1 = 1; asc3 = 1;">Name</th>
<th onclick="sort_table(table,2,asc3);asc3 *= -1;asc1 = 1; asc2 = 1;">Percentage</th>
</thead>
<tbody id="table">
<tr>
<td>1</td>
<td>A</td>
<td>10%</td>
</tr>
<tr>
<td>5</td>
<td>D</td>
<td>55%</td>
</tr>
<tr>
<td>3</td>
<td>F</td>
<td>3%</td>
</tr>
</tbody>
</table>
使用本 - > ARR [I] [J] =細胞[J] .innerHTML/1。 –
ありがとうございます@ZivWeissmanそれは動作しますが、名前列はNaNを返します。アルファベット順にソートする必要があります。 –