【问题标题】:Random selection 1, 3, 5 in combobox?组合框中的随机选择1、3、5?
【发布时间】:2013-01-21 03:29:22
【问题描述】:
首先,如果我在英语中有一些错误,我很抱歉。
<select id="listserver">
<option value="http://radio.xx.net/live/128">Vietel - 128 kbps</option>
<option value="http://radio.xx.net/live/64">Vietel - 64 kbps</option>
<option value="http://123.30.xx.xx:8000/live/128">VNPT - 128 kbps</option>
<option value="http://123.30.xx.xx:8000/live/64">VNPT - 64 kbps</option>
<option value="http://210.245.xx.xx:8000/live/128">FPT - 128 kbps</option>
<option value="http://210.245.xx.xx:8000/live/64">FPT - 64 kbps</option>
</select>
我有一个代码来选择服务器来收听这样的广播。现在我想与我的 3 台服务器保持带宽平衡,默认质量为 128 kbps。
我已阅读此link,它可以帮助我做到这一点。
【问题讨论】:
标签:
javascript
html
random
【解决方案1】:
您可以保留一组默认项目并只选择那些。在这种情况下,128 kbps 的项目位于索引 0、2 和 4。
var defaultItems = [0,2,4]
var select = document.getElementById('listserver');
var index = Math.floor(Math.random() * defaultItems.length);
select.selectedIndex = defaultItems[index];
JSFiddle example
【解决方案2】:
为每个选项标签添加一个id:
<select id="listserver">
<option id="1" value="http://radio.xx.net/live/128">Vietel - 128 kbps</option>
<option id="2" value="http://radio.xx.net/live/64">Vietel - 64 kbps</option>
<option id="3" value="http://123.30.xx.xx:8000/live/128">VNPT - 128 kbps</option>
<option id="4" value="http://123.30.xx.xx:8000/live/64">VNPT - 64 kbps</option>
<option id="5" value="http://210.245.xx.xx:8000/live/128">FPT - 128 kbps</option>
<option id="6" value="http://210.245.xx.xx:8000/live/64">FPT - 64 kbps</option>
</select>
然后您可以将 selected='selected' 或简单地指定给您想要选择的选项。您可以使用 Javascript 和 JQuery 生成 1 到 3 之间的随机数:
<script>
var num = Math.floor((Math.random()*3)+1);
最后将 selected 属性添加到随机选择的选项中:
if(num == 1){
$('#1').attr('selected', 'selected');
}elseif(num == 2){
etc....
</script>
希望这足够清楚:)