簡體   English   中英

如何按數字對表格列進行排序? (僅javascript)

[英]How to sort table column as number? (only javascript)

我需要對該表進行排序,但“百分比”和“數字”列卻以一種奇怪的方式進行排序。 它會將它們排序為字符串,而不是數字。 我在Google上搜索了很多,並嘗試使用parseInt,parseFloat和number,但是下面的代碼是我能得到的最好的代碼。

以任何方式我只能將這些列(而不是名稱列)轉換為數字?

抱歉,如果您對這個問題不太了解,那么我是編碼方面的初學者。 :-/

 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> 

var sortVal = cells[j].innerHTML;
arr[i][j] = isNaN(sortVal) ? sortVal : sortVal/1;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM