Javascript中的排序选择选项-基于同一行中的多个值
我创建了一个类似这样的列表框,并创建了一个有助于对数据进行排序的标题栏:Javascript中的排序选择选项-基于同一行中的多个值,java,javascript,html,Java,Javascript,Html,我创建了一个类似这样的列表框,并创建了一个有助于对数据进行排序的标题栏: ID Name ------------------------------------------------------------ ID1 Identity One ID2 Identity Two ID3 Identity Three ID4 Identity Fo
ID Name
------------------------------------------------------------
ID1 Identity One
ID2 Identity Two
ID3 Identity Three
ID4 Identity Four
-------------------------------------------------------------
我需要根据ID和名称对上面的列表进行排序,这意味着当用户单击ID时,它应该根据ID对列表进行排序,反之亦然。但问题是,从数据层来看,我们在一行中得到了如下结果:
ID1  :Idenitity One
因此,我们在选项标签中打印相同的内容,并获得如上所述的输出。生成上述输出的代码为:
<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>
ID1标识一
ID2身份二
ID4标识四
ID3身份三
我的问题是如何为上述场景实现排序功能?是的,我试图排序,但它是对整个列表框排序,而不是基于单个值。至少现在我能做的是格式化传入的数据,将所有ID放在一个数组中,将名称放在另一个数组中,因此任何关于这个数组的指南/指针都会受到欢迎。如果我没有解释清楚,请告诉我
编辑:
代码我试图对列表框进行排序
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;
}
功能排序选择(selElem){
var tmpAry=新数组();
对于(变量i=0;i 0){
sellem.options[0]=null;
}
对于(var i=0;i,您可以使用自定义数组排序
这里的想法是创建一个array并根据其值进行排序,然后根据排序后的值动态创建选项
自定义排序代码
source.sort(function (x, y) {
if (isAsc)
return y.id - x.id;
else
return x.id - y.id;
});
你可以发布你尝试过的内容吗?我尝试过排序,但它正在对整个列表框进行排序
@BalaKrishnan,我发布了代码你是在按钮单击中排序?还是在自定义标题单击中排序?@BalaKrishnan自定义标题单击..非常感谢你的帮助,但我忘了提到的是我们没有使用jQuery…:(@PradeepSimha,排序部分只在Js中,我只是用JQuery来查询元素,所以你可以用这个。