2013-05-28 108 views
0

我正在嘗試使用javascript顯示下拉菜單。這裏是我的代碼: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變量中顯示它?我想用循環來做。

或者有沒有更簡單的方法來做到這一點?謝謝!

回答

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)); 
} 
+0

即使對於這一點,'VAR爲MyObject = [];'需要 –

+0

@PrasathK:沒有,爲什麼?任何對象都可以有屬性。 – Bergi

+0

Sry,我認爲它是一組物體 –