2016-07-26 6 views
3

カラム(日付、文字列、int、チェックボックス)に複数のデータ型を持つテーブルがあります。チェックボックスのチェックされたプロパティでソートしたい。JSテーブルのチェックボックスによる並べ替え

私はほとんどの機能を実行しましたが、tdからチェックボックスの値を取得することに固執しています。ここで

$tbody.find('tr').sort(function (a, b) { 
    var tda = checkboxSort ? $(a).find('td:eq(' + columnNumber + ')').find('checkbox').val() : $(a).find('td:eq(' + columnNumber + ')').text().toLowerCase(); 
    var tdb = checkboxSort ? $(b).find('td:eq(' + columnNumber + ')').find('checkbox').val() : $(b).find('td:eq(' + columnNumber + ')').text().toLowerCase(); 
    //...other sortings based on type 

    if (ascending) { 
     return tda < tdb ? -1 : tda > tdb ? 1 : 0; 
    } else { 
     return tdb < tda ? -1 : tdb > tda ? 1 : 0; 
    } 
}).appendTo($tbody); 

"checkboxSort $(A).find?( 'TD:EQ(' + ColumnNumberに+ ')')( 'チェックボックス')を見つけるのval()。。" 私はそれを整理して管理するカント。

誰かが私を助けることができますか? ありがとう!

答えて

2

私はそれが動作することを願って、私はそれについては分かりません。あなたが他の変数についても言及したように私は私の側からテストしていないからです。まだ私は自分のベストを試しました

var $tr = $tbody.find('tr'); 

var sorted_tr= $tr.sort(function (a, b) { 
    var tda = checkboxSort ? $(a).find('td:eq(' + columnNumber + ') checkbox').is(':checked') : $(a).find('td:eq(' + columnNumber + ')').text().toLowerCase(); 
    var tdb = checkboxSort ? $(b).find('td:eq(' + columnNumber + ') checkbox').is(':checked') : $(b).find('td:eq(' + columnNumber + ')').text().toLowerCase(); 
    //...other sortings based on type 

    if (ascending) { 
     return tda < tdb ? -1 : tda > tdb ? 1 : 0; 
    } else { 
     return tdb < tda ? -1 : tdb > tda ? 1 : 0; 
    } 
}); 

$tbody.html(sorted_tr); 
関連する問題