选择一个随机的li元素 - JQuery

时间:2013-07-25 20:10:36

标签: jquery

我想知道是否有办法让JQuery在li标记内随机选择ul

示例:

<ul>
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
</ul>

所以这就是会发生什么,让我们点击事件$("ul li:last").trigger('click');,但注意它是如何:last,我怎么能指定它是选择第二个,第三个,甚至是第四个{ {1}}随机地在树中。

更新:

我注意到其他建议使用数学,如果我有一个由MySQL填充的li列表怎么办,我不知道会有多少ul li

4 个答案:

答案 0 :(得分:9)

使用

Math.floor( (Math.random() * $('ul li').length) + 1 );

这会为您提供介于1和li之间的数字,然后使用:nth-child()选择器。

您可以详细了解here

答案 1 :(得分:8)

这是一个扩展功能

$.fn.random = function()
{
    var ret = $();

    if(this.length > 0)
        ret = ret.add(this[Math.floor((Math.random() * this.length))]);

    return ret;
};

这就是你如何使用它

$("ul li").random().trigger("click");

答案 2 :(得分:5)

$("ul li:eq(" + Math.floor(Math.random()*4) + ")").trigger('click');

您可以使用Math.random

随机函数选择0到1之间的数字。将它乘以4并向下舍入将得到每次0到3之间的数字。

修改

正如在另一个答案中所建议的那样,使用代表丢失项目数量的length属性而不是硬编码4可能是一个好主意,但是因为我们想要从0开始,所以不要添加1处理指数。

答案 3 :(得分:2)

这是另一种解决方案:

var list = $('ul li');
list.eq(parseInt(Math.random()*list.length)).trigger('click');