私はHTMLテーブルの列をソートするために使用するコードを持っていますが、日付フィールドを除いて完全に動作します。アルファベットと純粋な数字それは素晴らしい作品!しかし、日付の列に使用すると、ソーターは私が望むように動作しません。現在の日付はそうのように並べ替えられます:プラグインなしのJavaScriptのソート日付
2016年1月2日
2016年2月1日
2014年12月12日
2015年12月14日
私は何が起こりたいですか:
2014年12月12日
2015年12月14日
2016年1月2日
2016年2月1日
ここで私はこの種を作るために使用するにはjavascriptがあります現在の仕事:
:var tb, asc1 = 1,
asc2 = 1,
asc3 = 1,
asc4 = 1,
asc5 = 1,
asc6 = 1;
function sort_table(tbody, col, asc) {
var rows = tbody.rows,
rlen = rows.length,
arr = new Array(),
i, j, cells, clen;
// fill the array with values from the table
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;
}
}
// sort the array by the specified column number (col) and order (asc)
arr.sort(function (a, b) {
return (a[col] == b[col]) ? 0 : ((a[col] > b[col]) ? asc : -1 * asc);
});
// replace existing rows with new rows created from the sorted array
for (i = 0; i < rlen; i++) {
rows[i].innerHTML = "<td>" + arr[i].join("</td><td>") + "</td>";
}
}
onclickの機能はこれです
function test() {
sort_table(tb, 0, asc1); asc1 *= -1; asc2 = 1; asc3 = 1; asc4 = 1; asc5 = 1; asc6 = 1;
};
どのように私はこれを起こすことができるかに関する提案はありますか?私はJavascriptには本当に新しく、毎日勉強しています!私の例から分からない場合は、日付形式はmm-dd-yyyyです。どんな助けでも大歓迎です!
UPDATE
彼は、それは私がそれをしたいが、私は自分のコードの中にそれを組み込むことができないとまったく同じ例で作業しているように私はダニエル・アルメイダコードを採用しています。私がそうするとき、並べ替えは不規則で、どこにでもあるようです。私はまた、jsfiddleを作成しましたが、私は全く何もするjsfiddleを取得することはできません
var sorter = function(id, column, order, isDate) {
var t = document.getElementById(id);
var rows = Array.prototype.slice.call(t.rows, 0);
rows = rows.sort(function(a, b) {
var dtA = (isDate) ? new Date(a.cells[column].innerHTML) : a.cells[column].innerHTML;
var dtB = (isDate) ? new Date(b.cells[column].innerHTML) : b.cells[column].innerHTML;
return (order == 0) ? dtA > dtB : dtA < dtB;
});
for (i = 0; i < rows.length; i++) {
t.appendChild(rows[i]);
}
}
:私は今、次のコードで働いています。私が気づいていないことを私が逃していることを心配しています。ここにはjsfiddleがあります。
2つのテーブルを分割する理由は、ボトムテーブルが動的に読み込まれ、コンテナdivは100個の返されたレコードがある場合に情報の長いリストの代わりにスクロールウィンドウを許可します。
ストア実際の日付オブジェクトをチェックし、それらを並べ替えます。表示する必要があるときにのみ日付オブジェクトを文字列に変換します。 – forgivenson