🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

806閲覧

tablesort.jsの初回ソート降順

catteria

総合スコア1

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2021/03/11 16:01

こちらのサイト(https://neil.fraser.name/software/tablesort/)のソート機能で、
初回ソートが昇順になっているのを初回ソート降順にしたいのですがどのように変更すれば良いでしょうか。
何度かソースを確認して見ましたがわからず……
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

解決案

TableSort.click = ...の部分を下記のように書き換えればOKかと思いますがいかがでしょうか?

具体的には下記の2行のreverse!をつけて反転させています。

if (reverse) {
var i = reverse ? (cellDictionary.length - 1 - y) : y;

Javascript

1TableSort.click = function(t, column, mode) { 2 var table = TableSort.tables_[t]; 3 if (!mode.match(/^[_a-z0-9]+$/)) { 4 alert('Illegal sorting mode type.'); 5 return; 6 } 7 var compareFunction = TableSort['compare_' + mode]; 8 if (typeof compareFunction != 'function') { 9 alert('Unknown sorting mode: ' + mode); 10 return; 11 } 12 // Determine and record the direction. 13 var reverse = false; 14 if (Math.abs(TableSort.lastSort_[t]) == column + 1) { 15 reverse = TableSort.lastSort_[t] > 0; 16 TableSort.lastSort_[t] *= -1; 17 } else { 18 TableSort.lastSort_[t] = column + 1; 19 } 20 // Display the correct arrows on every header/footer cell. 21 var spanMatchAll = new RegExp('\bTableSort_' + t + '_\d+\b'); 22 var spanMatchExact = new RegExp('\bTableSort_' + t + '_' + column + '\b'); 23 var spans = table.getElementsByTagName('SPAN'); 24 for (var s = 0, span; span = spans[s]; s++) { 25 if (span.className && spanMatchAll.test(span.className)) { 26 if (spanMatchExact.test(span.className)) { 27 if (!reverse) { 28 span.innerHTML = TableSort.arrowDown; 29 } else { 30 span.innerHTML = TableSort.arrowUp; 31 } 32 } else { 33 span.innerHTML = TableSort.arrowNone; 34 } 35 } 36 } 37 // Fetch the table's data and store it in a dictionary (assoc array). 38 if (!table.tBodies.length) { 39 return; // No data in table. 40 } 41 var tablebody = table.tBodies[0]; 42 var cellDictionary = []; 43 for (var y = 0, row; row = tablebody.rows[y]; y++) { 44 var cell; 45 if (row.cells.length) { 46 cell = row.cells[column]; 47 } else { // Dodge Safari 1.0.3 bug 48 cell = row.childNodes[column]; 49 } 50 cellDictionary[y] = [TableSort.dom2txt_(cell), row]; 51 } 52 // Sort the dictionary. 53 cellDictionary.sort(compareFunction); 54 // Rebuild the table with the new order. 55 for (y = 0; y < cellDictionary.length; y++) { 56 var i = !reverse ? (cellDictionary.length - 1 - y) : y; 57 tablebody.appendChild(cellDictionary[i][1]); 58 } 59};

不明な点がお伝え下さい。
ご確認をよろしくおねがいします!

投稿2021/03/18 16:31

marasonPD

総合スコア170

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

catteria

2021/03/19 10:35

できました! ありがとうございます! 素人ながら数年前と先日、ソースを読んでみてわからなかった改変なので大変嬉しいです!
guest

0

TableSort.lastSort_[0] = -1;

にしたらできませんか?

投稿2021/03/12 14:20

Py_pp

総合スコア65

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

catteria

2021/03/12 15:41

どの部分を TableSort.lastSort_[0] = -1; にするのでしょうか? 色々試してみましたがわかりませんでした。
Py_pp

2021/03/12 15:47

一番最後に追加です window['TableSort'] = TableSort; TableSort['click'] = TableSort.click; TableSort.lastSort_[0] = -1;
catteria

2021/03/13 00:28

ありがとうございます。 書いていただいた通りやってみましたが変わらず昇順が初回になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問