このようなリストボックスを作成し、データの並べ替えに役立つタイトルバーを作成しました。
ID Name
------------------------------------------------------------
ID1 Identity One
ID2 Identity Two
ID3 Identity Three
ID4 Identity Four
-------------------------------------------------------------
上記のリストをIDと名前に基づいて並べ替える必要があります。つまり、ユーザーがIDをクリックすると、IDに基づいてリストを並べ替える必要があります。その逆も同様です。しかし、問題はデータレイヤーからのものであり、1行で次のようになります。
ID1  :Idenitity One
したがって、optionsタグに同じものを出力し、上記のように出力を取得しています。上記の出力を生成するコードは次のとおりです。
<select id="selSort" size="10" style="width:350px" id="rpt">
<option value = "ID1">
ID1 Identity One
</option>
<option value = "ID2">
ID2 Identity Two
</option>
<option value = "ID4">
ID4 Identity Four
</option>
<option value = "ID3">
ID3 Identity Three
</option>
私の質問は、上記のシナリオの並べ替え機能をどのように実装するかです。はい、並べ替えを試みましたが、単一の値に基づいてではなく、リストボックス全体を並べ替えています。少なくとも今私ができることは、すべてのIDを1つの配列に入れ、名前を別の配列に入れるような方法で受信データをフォーマットすることです。明確に説明していない場合はお知らせください
編集:
リストボックスを並べ替えようとしたコード
function sortSelect(selElem) {
var tmpAry = new Array();
for (var i=0;i<selElem.options.length;i++) {
tmpAry[i] = new Array();
tmpAry[i][0] = selElem.options[i].text;
tmpAry[i][1] = selElem.options[i].value;
}
tmpAry.sort();
while (selElem.options.length > 0) {
selElem.options[0] = null;
}
for (var i=0;i<tmpAry.length;i++) {
var op = new Option(tmpAry[i][0], tmpAry[i][1]);
selElem.options[i] = op;
}
return;
}