Javascript 使用jQuery向select添加选项-更改顺序
我编写了以下代码来填充Jquery中的列表框(基于) 但是,列表是按照ID的顺序排列的,即。 我如何调整我的填充函数,以便按照列出它们的顺序对它们进行排序?(显然我可以重新分配ID,但我想知道是否有其他解决方案)更改Javascript 使用jQuery向select添加选项-更改顺序,javascript,jquery,Javascript,Jquery,我编写了以下代码来填充Jquery中的列表框(基于) 但是,列表是按照ID的顺序排列的,即。 我如何调整我的填充函数,以便按照列出它们的顺序对它们进行排序?(显然我可以重新分配ID,但我想知道是否有其他解决方案)更改.append()到.prepend(): $。每个(选择值、函数(键、值){ $(id).prepend($(“”).attr(“值”,键) .prop('selected',key==theSelected).text(值)); }); 更改.append()到.prepen
.append()
到.prepend()
:
$。每个(选择值、函数(键、值){
$(id).prepend($(“”).attr(“值”,键)
.prop('selected',key==theSelected).text(值));
});
更改.append()
到.prepend()
:
$。每个(选择值、函数(键、值){
$(id).prepend($(“”).attr(“值”,键)
.prop('selected',key==theSelected).text(值));
});
问题在于,你不能依赖对象属性的顺序,根本没有对象属性的顺序。而是使用对象数组 改进后的代码如下所示:
函数填充(id、selectValues、Selected、empty){
if(空){
$(id).empty();
}
$.each(选择值、函数(i、obj){
$(id).append($(“”)attr(“value”,obj.id)
.prop('selected',obj.id==theSelected).text(obj.text));
});
}
var-selectedBase=3;
填充(“#BASE1”[
{id:“8”,文本:“2012年平均值=100”},
{id:“7”,文本:“2010年平均值=100”},
{id:“6”,正文:“2008年平均数=100”},
{id:“5”,文本:“2006年平均数=100”},
{id:“4”,案文:“2002年平均数=100”},
{id:“3”,文本:“2000年平均数=100”},
{id:“2”,案文:“1998年平均数=100”},
{id:“1”,案文:“1993年平均数=100”}
],selectedBase,true)代码>
问题在于,您不能依赖对象属性的顺序,根本没有对象属性的顺序。而是使用对象数组
改进后的代码如下所示:
函数填充(id、selectValues、Selected、empty){
if(空){
$(id).empty();
}
$.each(选择值、函数(i、obj){
$(id).append($(“”)attr(“value”,obj.id)
.prop('selected',obj.id==theSelected).text(obj.text));
});
}
var-selectedBase=3;
填充(“#BASE1”[
{id:“8”,文本:“2012年平均值=100”},
{id:“7”,文本:“2010年平均值=100”},
{id:“6”,正文:“2008年平均数=100”},
{id:“5”,文本:“2006年平均数=100”},
{id:“4”,案文:“2002年平均数=100”},
{id:“3”,文本:“2000年平均数=100”},
{id:“2”,案文:“1998年平均数=100”},
{id:“1”,案文:“1993年平均数=100”}
],selectedBase,true)代码>
谢谢!顺便说一句,我假设我应该删除.find('.test')
,但是出现了一个错误对象不支持属性或方法“appendTo”
。@gordon613:很高兴它有帮助:)谢谢!顺便说一句,我假设我应该删除.find('.test')
,但是有一个错误对象不支持属性或方法“appendTo”
…@gordon613:很高兴它有帮助:)
function populate(id, selectValues, theSelected, empty) {
if (empty) {
$(id).empty();
}
$.each(selectValues, function(key, value) {
$(id).append($("<option></option>").attr("value", key)
.prop('selected', key == theSelected).text(value));
});
}
populate('#BASE1', {
"8": "2012 average=100",
"7": "2010 average=100",
"6": "2008 average=100",
"5": "2006 average=100",
"4": "2002 average=100",
"3": "2000 average=100",
"2": "1998 average=100",
"1": "1993 average=100"
}, selectedBase, true);
$.each(selectValues, function(key, value) {
$(id).prepend($("<option></option>").attr("value", key)
.prop('selected', key == theSelected).text(value));
});