2012-03-06 50 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); 
});