使用javascript订购随机表单选项

时间:2015-10-16 00:18:22

标签: javascript forms

我有一些随机生成的表单选项,我需要按照定义的顺序重新排序。

示例:

<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 个答案:

答案 0 :(得分: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);
});