【发布时间】:2014-07-04 12:05:53
【问题描述】:
我正在以这种格式生成一个名为statecontent 的数组:
["<option value="Texas" data-code="TX">Texas - TX</option>",
"<option value="Washington" data-code="WA">Washington - WA</option>",
"<option value="Maryland" data-code="MD">Maryland - MD</option>""]
我正在使用这个数组来填充一个下拉框
var statecombo = $('#stateCombobox');
statecombo.append(statecontent.join(''))
但是,我使用的常规排序方法都不起作用。
通常我会这样做:
var target = '#stateCombobox'
sortdropdown(target)
function sortdropdown(target) {
$(target).html($(target + " option").sort(function (a, b) {
return a.text == b.text ? 0 : a.text < b.text ? -1 : 1;
}));
}
这不起作用,知道如何使用这种格式进行排序吗?
尝试this 和this 没有成功我猜是因为它们在html标签中?
不确定如何在追加之前进行排序,因为我生成它的方式如下:
for (var j = 0; j < obj[k].countries[i].states.length; j++) {
var item = '<option value="' + obj[k].countries[i].states[j].state + '" data-code="' + Scode + '">' + obj[k].countries[i].states[j].state;
item = item + '</option>';
statecontent.push(item);
};
【问题讨论】:
-
在生成 HTML 数组之前不能排序吗?
-
sort是Array的方法,不是jQuery集合 -
这是按预期排序的,请参阅jsfiddle.net/9aXYc/42
标签: javascript jquery arrays sorting