在javascript对象中循环

时间:2013-05-28 09:39:02

标签: javascript variables date object option

我正在尝试使用javascript显示下拉列表。这是我的代码:

function monthlistview()
{
var monthlist=document.getElementById("monthlist");
document.getElementById("favorite").value=monthlist.options[monthlist.selectedIndex].text;
if(document.getElementById("favorite").value=='Feb'){
var myobject = {};
for (var x = 0; x <= 28; x++) {
myobject[x] = {x: x}; //should display 1-28
}
var select = document.getElementById("daylist");
for(index in myobject) {
select.options[select.options.length] = new Option(myobject[index], index);
}
}
}

我想要发生的是当用户选择2月份时,天数选项将自动设置为28天。如何在myobject变量中显示它?我想用循环来做。

或者有更简单的方法吗?谢谢!

1 个答案:

答案 0 :(得分:2)

myobject[x] = {x: x}; //should display 1-28

然后使用这些数字,而不是具有x属性的对象:

myobject[x] = x;

但是,你根本不应该使用myobject - 它的属性没有排序,可能会以你的for-in循环以任何顺序枚举。只需将new Option(…)直接放在for循环中:

var monthlist = document.getElementById("monthlist"),
    favorite = document.getElementById("favorite"),
    select = document.getElementById("daylist");
var month = favorite.value = monthlist.options[monthlist.selectedIndex].text;
       // I'd suggest using `monthlist.value` if that is the same
var days =  month == 'Feb' ? 28 : 31; //???
for (var index=0; index<days; index++) {
    select.add( new Option(index, index+1) );
}