私は壁にぶつかっているので、これを達成する方法のアイデアを探しています。Javascript:sorting objects
私は、MySQLデータベースから取得したデータを表示するテーブルを持っています。この表は、表示されたデータの後に1つのセルの隠れた行が続く13個のセルの行のシーケンスになります。非表示行は、前の行のセルインデックス1のリンクをクリックすると切り替わります。
行1:行2を表示するには、このセルをクリックします。別のセル:別のセル:広告nauseumを我々が13に到達するまで:行2を表示するには、このセルをクリックしてください: 行3に隠されている 行2:そうのように別のセル:別のセル:広告nauseum我々が13に到達するまで:ので、私はそれが表示された行だったかどうかを判断するためにテストを設定し、その後、すべての行を引っ張っjqueryのを使用して ...
を隠されている 行4隠し行、表示されている場合は、その行と次のオブジェクトをオブジェクトに入れて、そのオブジェクトを別のオブジェクトに配置します。
//this function is for sorting the data in the table
$(".sort").click(function() {
//get what column we are sorting by
var sortBy = $(this).attr('sortBy');
//set the colnum to sort by
if (sortBy == "itemname") {
var sortCol = 1;
} else if (sortBy == "priority") {
var sortCol = 2;
} else if (sortBy == "livedate") {
var sortCol = 10;
} else if (sortBy == "status") {
var sortCol = 11;
} else if (sortBy == "designer") {
var sortCol = 12;
}
//get the table data
var tableData = getTableData("NO", "null", "YES", sortBy);
//get all the rows
var tableRowArray = $("#productTableBody tr");
//declare new table object
var tableObj = new Object;
var rowPackage = new Object;
//loop through tableRowArray and put rows into packages of two, the main row and the hidden row
for(var t=0; t<tableRowArray.length; t++) {
if($(tableRowArray[t]).children(":first").attr('class') == "colorCode") {
rowPackage[t] = $(tableRowArray[t]).children();
rowPackage[t+1] = $(tableRowArray[t+1]).children();
//dump rows into tableObj
tableObj[t] = rowPackage;
}
//clean out rowPackage
rowPackage = {};
}
var x=-2;
for(thisRow in tableObj) {
x = x+2;
var sortItem = $(tableObj[thisRow][x][sortCol]).html();
//ack! -->getting stumped here
}
});
また、ユーザーが並べ替える列を収集しました。私は、ユーザーが並べ替えたいセルを見つけることができます。私はその情報をプルする必要があることを知っている配列と並べ替えに入れますが、私はテーブルのボディのHTMLを書き換えることができるようにソートされた配列を私のtableObjに適用する方法を困惑していると思う...私は困惑しているたとえば、デザイナーがデータを並べ替えると、データがこのような{"a"、 "b"、 "c"、 "c"、 "a"、 "a"、 " "a"}はソートされたときにa、a、a、b、c、cになりますが、いくつかは同じなので、オブジェクトをループしてループして最初の項目に一致するエントリを見つけることはできません私のソートされたタフな1だ配列、4つの項目がそれにマッチします。それでは、どのよう私は、ソートされたリストの最初のAとアップ一致するオブジェクト内のどのエントリを判断しますか?事前に
感謝を。
FYI、これは正常な配列の並べ替えが正常に動作します。あなたはちょうど2つの異なる行からの細胞を比較する必要があります。 –
ありがとう、私はあなたのコードを(悪い言葉を意図して並べ替える必要があります:D)と私の状況で動作するようになる... – PruitIgoe