2014-05-16 32 views
0

我有「按鈕」這樣反向動態數組

<span data-id="dr21" data-minheight="100" data-maxheight="200" data-minwidth="20" data-maxwidth="50" class="customsizebutton">(edit size)/span> 

和這樣的腳本

<script> 
$('.customsizebutton').click(function() 
{ 
var id = $(this).data('id');  
var minHeight = $(this).data('minheight'); 
var maxHeight = $(this).data('maxheight'); 
var minWidth = $(this).data('minwidth'); 
var maxWidth = $(this).data('maxwidth'); 
var arrayH = []; 
var arrayW = []; 
for (var i = minHeight; i <= maxHeight-1; i++) { 
arrayH.push(i); 
} 
for (var i = minWidth; i <= maxWidth-1; i++) { 
arrayW.push(i); 
} 

var selectListH = document.getElementById("h-"+id); 
for (var i = 0; i < arrayH.length; i++) { 
var option = document.createElement("option"); 
option.text = arrayH[i]; 
selectListH.appendChild(option); 
} 

var selectListW = document.getElementById("w-"+id); 

for (var i = 0; i < arrayW.length; i++) { 
var option = document.createElement("option"); 
option.text = arrayW[i]; 
selectListW.appendChild(option); 
}}) 
</script> 

我試圖用

<option>200</option> 
<option>199</option>...  
<option>101</option> 
<option>100</option> 

<option>50</option> 
<option>49</option>...  
<option>21</option> 
<option>20</option> 

目前,它填補兩個下拉菜單以相反的方向填充下拉(從低到高)。我對此很陌生,反覆試驗讓我走得這麼遠。

謝謝

回答

2

只需以相反的順序填充數組。

for (var i = maxHeight-1; i >= minHeight; i--) { 
arrayH.push(i); 
} 
for (var i = maxWidth-1; i >= minWidth; i--) { 
arrayW.push(i); 
} 
1

如果您只是需要填充的下拉菜單按相反的順序,你可以重複他們在倒車時,像這樣:

for (var i = arrayH.length - 1; i >= 0; i--) { 
var option = document.createElement("option"); 
option.text = arrayH[i]; 
selectListH.appendChild(option); 
} 

如果你想真正扭轉數組中的項目,如你的問題表示的稱號,這是更簡單,與Array.reverse功能:

arrayH = arrayH.reverse(); 

如果你是新手,我建議您查看JavaScript documentation over at Mozilla

+1

或者,首先按照相反的順序填充數組,如[user7276's answer](http://stackoverflow.com/a/23690757/3207828))。 –