Javascript 按顺序填充下拉列表
我试图以特定的顺序(字母顺序/字母数字顺序)填充下拉列表,但我的代码似乎不起作用。它正在填充值,但不按顺序填充 这是我的密码Javascript 按顺序填充下拉列表,javascript,jquery,html,Javascript,Jquery,Html,我试图以特定的顺序(字母顺序/字母数字顺序)填充下拉列表,但我的代码似乎不起作用。它正在填充值,但不按顺序填充 这是我的密码 function dropdown(){ var html = html + "<option value='All'>All</option>"; var colValue = getColumn("COLUMN"); for( var i = 0; i < colValue.length; i++ ) {
function dropdown(){
var html = html + "<option value='All'>All</option>";
var colValue = getColumn("COLUMN");
for( var i = 0; i < colValue.length; i++ ) {
var valueRow = colValue[i];
html = html + "<option value='" + valueRow.c + "'>" + valueRow.c + "-" + valueRow.v + "</option>";
}
$('#id').append(html);
}
而且它的数量也完全一样
我的问题是,我需要做什么,来按顺序填充我的下拉列表?
我还在java脚本和Jquery的初级阶段。谢谢你的帮助
谢谢你可以试试这个:
function dropdown(){
var html = html + "<option value='All'>All</option>";
var colValue = getColumn("COLUMN");
colValue.sort();
for( var i = 0; i < colValue.length; i++ ) {
var valueRow = colValue[i];
html = html + "<option value='" + valueRow.c + "'>" + valueRow.c + "-" + valueRow.v + "</option>";
}
$('#id').append(html);
}
函数下拉列表(){
var html=html+“全部”;
var colValue=getColumn(“COLUMN”);
colValue.sort();
对于(var i=0;i
根据您所说的,colValue看起来是这样的:
colValue = [
{ c="A3", v="a3Value" },
{ c="A1", v="a2Value" } // etc.
]
colValue.sort(createComparator("c"));
因此,您需要决定排序的属性,然后可以创建一个比较器:
function createComparator(property) {
return function(a, b) {
return a[property] > b[property];
};
}
您可以这样使用它:
colValue = [
{ c="A3", v="a3Value" },
{ c="A1", v="a2Value" } // etc.
]
colValue.sort(createComparator("c"));
基于此,请回答:因为
valueRow
是一个对象而不是一个数组,并且您想要在valueRow.v
上排序,您需要的不仅仅是array.sort()
看看lodash的sortBy
:
\uu.sortBy(valueRow,'c')
如果您创建一个显示问题的JSFIDLE,它会更容易提供帮助:)下面是链接:@David-我刚刚修复了排序函数中的一个逻辑错误。-这真的很有帮助。谢谢