2012-03-06 100 views
0

我想从随机选择一个选项。jquery/javascript随机选择

<select class=".sel" id="sel"> 
    <option>a</option> 
    <option>b</option> 
    <option>c</option> 
    <option>d</option> 
</select> 

其实我正在使用jQuery自动完成。

那么,问题是我如何从选择框中随机选择选项?

和我的尝试是

function change_something(opt) 
    { 
    var randomOption=Math.floor(Math.random()*$(opt+' option').size()); 
    $(opt+ option["value='"+randomOption+"'"]).attr('selected', 'selected'); 
    } 

其实我不是一个jQuery的专家,所以我越来越无法改变的东西。

+0

哪里是问题吗?你的代码在哪里? – charlietfl 2012-03-06 04:10:05

+0

@elclanrs感谢ou对这个问题的贡献,我试了一下' \t var randomOption = Math.floor(Math.random()* $(opt +'option')。size()); $(opt + option [“value ='”+ randomOption +“'”])。attr('selected','selected');' – Red 2012-03-06 04:10:11

+0

如何看待这第一个:http://stackoverflow.com/questions/7577047/need-a-jquery-randomly-selected-identifier-from-options-available – 2012-03-06 04:14:41

回答

2

这将适用于您的HTML示例代码片段。

var options = $("#sel > option"); 

var random = Math.floor(options.length * (Math.random() % 1)); 

$("#sel > option").attr('selected',false).eq(random).attr('selected',true); 
+0

如果我想从第一个选项中随机选择其中一个选项,该怎么办? (通常为空选项) - andufo刚刚编辑 – andufo 2016-04-09 03:01:43

3

这就是你需要什么

options = $("#sel > option") 
options[Math.floor(Math.random() * options.length)].selected = true 

而且,使用类= “选择”,而不是阶级= “SEL。”

+0

这是一个错误...谢谢你.. – Red 2012-03-06 04:17:32

+0

你试过这个吗?它在Chrome中似乎不适用于我。它只适用于我,如果我设置'xxx.selected =“选择”'。 – jfriend00 2012-03-06 04:29:02

+0

@ jfriend00我将'.sel'改为'sel':D – Red 2012-03-06 04:34:51

-1

“.sel” 更改您的类 “选择”,然后尝试:

 

$(document).ready(function() { 
    var index = Math.floor(Math.random() * $(".sel option").length) + 1; 
    $("select option:nth-child(" + index + ")").prop("selected", true); 
});