在随机列表项上添加类

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 抱歉,在您发表评论之前我更正了我的代码,但谢谢 :)

以上是关于在随机列表项上添加类的主要内容,如果未能解决你的问题,请参考以下文章

MYSQL 从列表中随机插入

Android如何在每个listview列表项上添加图标并更改文本颜色、背景颜色

如何使用列表在每个上下文菜单项上添加点击事件?

悬停列表项上的引导导航栏删除类活动,鼠标移出返回类活动

如何在适配器类中的列表视图项上获取动画?

从python中的类列表中随机选择x个项目