我正在尝试使用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变量中显示它?我想用循环来做。
或者有更简单的方法吗?谢谢!
答案 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) );
}