3

リスト項目を含む順序付けられていないリストがあります。リスト項目にランダムに追加したい「アクティブ」というクラスがあります。私は今これを持っています:

// I want this class added on a random list item
$("#gallery li:first-child").addClass("on"); 

数学ランダム?

4

5 に答える 5

7
var random = Math.floor(Math.random() * 1000);

var $li = $("#gallery li");
$li.eq(random % $li.length).addClass("on");
于 2012-05-14T14:53:37.437 に答える
5

以下のようなものを試してください、

var $li = $('#gallery li');
$li.eq(Math.floor(Math.random()*$li.length)).addClass("on");

編集: DOMの再クエリを避けるために更新li

于 2012-05-14T14:51:31.307 に答える
1
var licount = $("#gallery li").length;
var randomnumber=Math.floor(Math.random()*(licount+1));

$("#gallery li:nth-child("+randomnumer+")").addClass("on");
于 2012-05-14T14:54:07.187 に答える
0

liの数を知っている場合(ここでは10 li)

rand=Math.floor(Math.random() * 10); // 0 to 9
$("#gallery li").get(rand).addClass("on"); 

そうしないと

var $li=$("#gallery li");
rand=Math.floor(Math.random() * $li.length()); // 
$li.eq(rand).addClass("on"); 
于 2012-05-14T14:54:55.247 に答える
0

Math.randomは乱数を取得する方法なので、0と s の数<li>(マイナス 1) の間の数を取得し、それにクラスを追加するだけです。

var $lis = $("#gallery li");
$lis.eq( Math.floor( Math.random() * $lis.length ) ).addClass("on"); 
于 2012-05-14T14:52:45.730 に答える