在随机列表项上添加类
Posted
技术标签:
【中文标题】在随机列表项上添加类【英文标题】:adding class on a random list item 【发布时间】:2012-05-22 01:48:35 【问题描述】:我有一个包含列表项的无序列表。 我有一个名为“活动”的类,我希望将其随机添加到列表项中。我现在有这个:
// I want this class added on a random list item
$("#gallery li:first-child").addClass("on");
数学随机数?
【问题讨论】:
感谢大家的快速回复!我随机(:p)选择了一个正确的答案。 【参考方案1】:var random = Math.floor(Math.random() * 1000);
var $li = $("#gallery li");
$li.eq(random % $li.length).addClass("on");
【讨论】:
【参考方案2】:试试下面的方法,
var $li = $('#gallery li');
$li.eq(Math.floor(Math.random()*$li.length)).addClass("on");
编辑:已更新以避免重新查询 DOM 以获取 li
【讨论】:
【参考方案3】:var licount = $("#gallery li").length;
var randomnumber=Math.floor(Math.random()*(licount+1));
$("#gallery li:nth-child("+randomnumer+")").addClass("on");
【讨论】:
【参考方案4】:Math.random
是您获取随机数的方式,因此您需要做的就是获取一个介于 0
和 <li>
s 的数量(减 1)之间的数字,并将类添加到其中。
var $lis = $("#gallery li");
$lis.eq( Math.floor( Math.random() * $lis.length ) ).addClass("on");
【讨论】:
【参考方案5】:如果你知道里数(这里是 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 对象。
@rocket 抱歉,在您发表评论之前我更正了我的代码,但谢谢 :)以上是关于在随机列表项上添加类的主要内容,如果未能解决你的问题,请参考以下文章