使用tablesorter插件,你應該參考如何編寫自己的解析器的文檔。在此處查看:http://tablesorter.com/docs/example-parsers.html
您要求的內容似乎幾乎完全符合文檔中使用的示例。爲方便起見,下面複製了文檔中的代碼。
// add parser through the tablesorter addParser method
$.tablesorter.addParser({
// set a unique id
id: 'grades',
is: function(s) {
// return false so this parser is not auto detected
return false;
},
format: function(s) {
// format your data for normalization
return s.toLowerCase().replace(/good/,2).replace(/medium/,1).replace(/bad/,0);
},
// set type, either numeric or text
type: 'numeric'
});
$(function() {
$("table").tablesorter({
headers: {
6: {
sorter:'grades'
}
}
});
});
你的目的的代碼是這樣的:
// add parser through the tablesorter addParser method
$.tablesorter.addParser({
// set a unique id
id: 'medals',
is: function(s) {
// return false so this parser is not auto detected
return false;
},
format: function(s) {
// format your data for normalization
// Note the 'i' added after the medal type, that makes it case insensitive.
return s.toLowerCase().replace(/gold/i,2).replace(/silver/i,1).replace(/bronze/i,0);
},
// set type, either numeric or text
type: 'numeric'
});
$(function() {
$("table").tablesorter({
headers: {
6: { // Replace '6' with the number of the column that your medals are in
sorter:'medals'
}
}
});
});
您好,感謝您的答覆。這兩個答案都非常有用。 hradac:我會毫不猶豫地看看後面項目的自定義解析內容,但我認爲它在這種特殊情況下不會起作用,因爲這些值已經是數字,因此可以通過內置解析器進行排序。 fudgey:感謝這種方法和您的全面解釋。看起來像一個易於實施的方式。我會試一試。 – zinky 2012-08-10 09:28:39
再次感謝,我終於有一段時間來實施「體重」跨度。它對我來說非常合適。 – zinky 2012-08-14 15:11:22