【发布时间】:2012-05-22 01:48:35
【问题描述】:
我有一个包含列表项的无序列表。 我有一个名为“活动”的类,我希望将其随机添加到列表项中。我现在有这个:
// I want this class added on a random list item
$("#gallery li:first-child").addClass("on");
数学随机数?
【问题讨论】:
-
感谢大家的快速回复!我随机(:p)选择了一个正确的答案。
我有一个包含列表项的无序列表。 我有一个名为“活动”的类,我希望将其随机添加到列表项中。我现在有这个:
// I want this class added on a random list item
$("#gallery li:first-child").addClass("on");
数学随机数?
【问题讨论】:
var random = Math.floor(Math.random() * 1000);
var $li = $("#gallery li");
$li.eq(random % $li.length).addClass("on");
【讨论】:
试试下面的方法,
var $li = $('#gallery li');
$li.eq(Math.floor(Math.random()*$li.length)).addClass("on");
编辑:已更新以避免重新查询 DOM 以获取 li
【讨论】:
var licount = $("#gallery li").length;
var randomnumber=Math.floor(Math.random()*(licount+1));
$("#gallery li:nth-child("+randomnumer+")").addClass("on");
【讨论】:
Math.random 是您获取随机数的方式,因此您需要做的就是获取一个介于 0 和 <li>s 的数量(减 1)之间的数字,并将类添加到其中。
var $lis = $("#gallery li");
$lis.eq( Math.floor( Math.random() * $lis.length ) ).addClass("on");
【讨论】:
如果你知道里数(这里是 10 里)
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");
【讨论】:
.eq(),而不是.get()。 .get() 返回一个 DOM 元素,而不是 jQuery 对象。