フィールドを持つテーブルがあるとします
Rank
、Id
およびName
をクリックするRank
と、このコードを使用してテーブルがランクの昇順で並べ替えられます
$(function() {
$("#rank").click(function() {
var rows = $("#rank_table tbody tr").get();
rows.sort(sortTable);
$.each(rows, function(index, row) {
$("#rank_table").children("tbody").append(row);
});
});
});
function sortTable(a, b) {
var A = parseInt($(a).children('td').eq(0).text());
var B = parseInt($(b).children('td').eq(0).text());
if (A < B) return -1;
if (A > B) return 1;
return 0;
}
Rank と Id はそれぞれ idrank
とを持つ整数st_id
です。だから、私が達成したいのは、ランクフィールドを1回クリックすると、テーブルが昇順でソートされ、もう一度クリックするとテーブルが降順でソートされることです。
rank
フィールドとフィールドの両方でこれを行いたいですId
。降順の場合、この昇順関数の昇順以外に別の関数を使用する必要がありますか?
jQueryとこれを使用してこれを達成するにはどうすればよいsort() function(not plugins)
ですか?
ここにhtmlがあります
<!Doctype html>
<html>
<head>
<style>
#thead {
cursor: pointer;
text-decoration: underline;
text-align: center;
}
#tbody {
text-align: center;
}
</style>
<script src="libs/jquery-1.5.1.js" type="text/javascript"></script>
<script src="table_sort.js" type="text/javascript"></script>
</head>
<body>
<table id="rank_table">
<thead id="thead">
<tr>
<th id="rank">Rank</th>
<th id="st_id">Student_id</th>
<th id="st_name">Name</th>
</tr>
</thead>
<tbody id="tbody">
<tr>
<td>3</td>
<td>2</td>
<td>Ted</td>
</tr>
<tr>
<td>2</td>
<td>1</td>
<td>John</td>
</tr>
<tr>
<td>5</td>
<td>4</td>
<td>Neil</td>
</tr>
<tr>
<td>1</td>
<td>5</td>
<td>Alex</td>
</tr>
<tr>
<td>4</td>
<td>3</td>
<td>Nave</td>
</tr>
</tbody>
</table>
</body>
</html>