2013-05-07 287 views
0

我試圖在表中對不同的列進行排序。我讓他們爲數字工作,但我不知道如何完成具有字母數據的列。Javascript,按數字或字母對列進行排序

這裏是我的工作是什麼在:在此基礎上http://jsfiddle.net/nx4Ex/1/

https://stackoverflow.com/a/7558600/2219915

我會問在評論那裏,但我的代表處是不夠高。

這是我正在使用的腳本。我知道parsefloat處理數字,但我不知道如何改變它以處理數字和/或字母。

function sortTable(){ 
var tbl = document.getElementById("caltbl").tBodies[0]; 
var store = []; 
for(var i=0, len=tbl.rows.length; i<len; i++){ 
    var row = tbl.rows[i]; 
    var column1 = parseFloat(row.cells[0].textContent || row.cells[0].innerText); 
    if(!isNaN(column1)) store.push([column1, row]); 
} 
store.sort(function(x,y){ 
    return x[0] - y[0]; 
}); 
for(var i=0, len=store.length; i<len; i++){ 
    tbl.appendChild(store[i][1]); 
} 
store = null; 
}; 

我還應該提到,我試圖避免使用任何JavaScript庫或插件。我需要的是這種基本的排序功能。

+0

閱讀接受的答案在這裏:http://stackoverflow.com/questions/5285995/how-do-you-sort-letters-in-javascript-with-capital-and-lowercase-letters-combin – sgroves 2013-05-07 17:37:51

+0

這似乎作爲JavaScript工作。 以前我說過:這個答案是jQuery的導向,我不打算爲此使用jQuery。 – user2219915 2013-05-07 18:13:43

+1

我在那個答案中根本沒有看到任何jQuery。它討論使用'sort'函數按字母順序排序,這是你想要做的,對吧? – sgroves 2013-05-07 18:15:59

回答

1

表的排序,使用普通的JavaScript構建。我在鉻中測試過

$('sort-date').addEventListener('click', function(){ 
    sortByDate(this); 
},false); 

$('sort-notify').addEventListener('click', function(){ 
    sortByNotify(this); 
},false); 

$('sort-id').addEventListener('click', function(){ 
    sortById(this); 
},false); 

點擊列標題,對錶格內容進行排序。 jsfiddle

+0

謝謝,但這是使用jQuery,但我正在尋找一個僅用於javascript的解決方案 – user2219915 2013-05-07 17:59:44

+0

@ user2219915更新與普通js的答案..我會添加排序與其他列如果我得到時間! – rab 2013-05-07 19:04:41

相關問題