2013-05-07 141 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