我有一些随机生成的表单选项,我需要按照定义的顺序重新排序。
示例:
<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 ..),循环一个条件语句并写入每个相应的值(如果存在)。
答案 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);
});