在Javascript中对选择选项进行排序 – 基于同一行中的多个值

我创建了一个这样的列表框,并创建了一个标题栏,有助于对数据进行排序:

ID Name ------------------------------------------------------------ ID1 Identity One ID2 Identity Two ID3 Identity Three ID4 Identity Four ------------------------------------------------------------- 

我需要根据ID和名称对上面的列表进行排序,这意味着当用户点击ID时,它应该根据ID排序列表,反之亦然。 但问题来自数据层,我们在一行中得到这样的结论:

 ID1   &nbsp:Idenitity One 

所以我们在选项标签中打印相同的内容,并获得如上所述的输出。 生成以上输出的代码是:

    ID1     Identity One   ID2     Identity Two   ID4     Identity Four   ID3     Identity Three  

我的问题是如何为上述场景实现排序工具? 是的,我尝试排序,但它正在排序整个列表框,而不是基于单个值。 至少现在我能做的是格式化传入数据,以便将所有ID放在一个数组中,并将名称放在另一个数组中,因此任何指南/指针都会受到赞赏。 如果我没有清楚解释,请告诉我

编辑:

代码我试图对列表框进行排序

 function sortSelect(selElem) { var tmpAry = new Array(); for (var i=0;i 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; } 

你可以使用自定义数组排序看一下这个如何根据id对select进行排序?

这里的想法只是根据其值创建一个arrray和sort,然后根据排序值动态创建选项。

自定义排序代码

 source.sort(function (x, y) { if (isAsc) return y.id - x.id; else return x.id - y.id; });