Javascript 随机选择下拉列表的一部分

Javascript 随机选择下拉列表的一部分,javascript,html,Javascript,Html,我试图在选择下拉列表中随机选择部分选项顺序。首先保留第一个选项,最后保留后两个选项 <select class="form-control" id="return-reason"> <option value="" disabled="disabled" selected="selected">Please select...</option> <option>Option 1</option> <opti

我试图在选择下拉列表中随机选择部分选项顺序。首先保留第一个选项,最后保留后两个选项

<select class="form-control" id="return-reason">
    <option value="" disabled="disabled" selected="selected">Please select...</option>
    <option>Option 1</option>
    <option>Option 2</option>
    <option>Option 3</option>
    <option>Option 4</option>
    <option>Option 5</option>
    <option>Option 6</option>
    <option>Prefer not to say</option>
    <option>Other</option>
</select>
我可以将“请选择”选项放在HTML列表的底部,通过运行稍微修改的循环,它将在“请选择”之后附加一个随机列表(减去“请选择”选项)

var ul = document.querySelector('#return-reason');
for (var i = ul.children.length + 1; i >= 0; i--) {
    ul.appendChild(ul.children[Math.random() * i | 0]);
}
但这仍然没有考虑将“更愿意不说”和“其他”选项放在底部。我不能完全肯定我能通过这种方式达到我的要求,而且感觉不太对

谁能给我一个建议


就我个人而言,它不必是100%精确随机的。

如果将选项构建到数组中

var options = ["Option 1", "Option 2", ...];

…然后,您可以使用答案在将选项插入select元素之前随机化选项。

首先,最好添加一个属性,指定选项 是否将随机化,如数据随机化,例如:

<select class="form-control" id="return-reason">
    <option data-randomize="false" value="" disabled="disabled" selected="selected">Please select...</option>
    <option>Option 1</option>
    <option>Option 2</option>
    <option>Option 3</option>
    <option>Option 4</option>
    <option>Option 5</option>
    <option>Option 6</option>
    <option data-randomize="false">Prefer not to say</option>
    <option data-randomize="false">Other</option>
</select>

请选择。。。
选择1
选择2
选择3
选择4
备选案文5
备选案文6
宁愿不说
其他
<select class="form-control" id="return-reason">
    <option data-randomize="false" value="" disabled="disabled" selected="selected">Please select...</option>
    <option>Option 1</option>
    <option>Option 2</option>
    <option>Option 3</option>
    <option>Option 4</option>
    <option>Option 5</option>
    <option>Option 6</option>
    <option data-randomize="false">Prefer not to say</option>
    <option data-randomize="false">Other</option>
</select>