2015-10-16 41 views
1

我有一些隨機生成的表單選項,需要按照定義的順序重新排序。使用javascript訂購隨機表格選項

實施例:

<select id="the_size"> 
    <option value="">Select something</option> 
    <option value="xl">XL</option> 
    <option value="l">L</option> 
    <option value="s">S</option> 
</select> 

應該是:

<option value="s">S</option> 
<option value="l">L</option> 
<option value="xl">XL</option> 

並再次:

<select id="the_size"> 
    <option value="">Select something</option> 
    <option value="s">S</option> 
    <option value="m">M</option> 
    <option value="xs">XS</option> 
</select> 

應該是:XS,S,M。

我該如何做到這一點?可能會隱藏所有內容,定義一個數組(xs,s,m,l,xl,xxl ..),循環一個條件語句並寫入每個對應的值(如果存在的話)。

回答

1

您可以選擇進行排序,然後(重新)他們追加到select元素:

var c = ['xs', 's', 'm', 'l', 'xl', 'xxl'], 
    s = document.querySelector('#the_size'), 
    o = [].slice.call(s.options); 

o.sort(function(a, b) { 
    return c.indexOf(a.value) - c.indexOf(b.value); 
}).forEach(function(el) { 
    s.appendChild(el); 
});