0

我正在尝试使用 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);
}
}
}

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

或者有没有更简单的方法来做到这一点?谢谢!

4

1 回答 1

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) );
}
于 2013-05-28T09:45:32.593 回答