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

Dav*_*iga 4 jquery

我想知道是否有办法让JQuery随机选择li一个ul标签内部.

例:

<ul>
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

所以这里会发生什么,让我们有一个click事件,$("ul li:last").trigger('click'); 但是请注意它是:last如何产生的,我怎么能指定它是否li随机选择树中的第二个,第三个,甚至第四个.

更新:

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

小智 10

使用

Math.floor( (Math.random() * $('ul li').length) + 1 );
Run Code Online (Sandbox Code Playgroud)

这将为您提供1到1之间的数字li,然后使用:nth-child()选择器.

你可以在这里了解更多相关信息


Joh*_*ohn 9

这是一个扩展功能

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

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

    return ret;
};
Run Code Online (Sandbox Code Playgroud)

这就是你如何使用它

$("ul li").random().trigger("click");
Run Code Online (Sandbox Code Playgroud)


mar*_*ljn 5

$("ul li:eq(" + Math.floor(Math.random()*4) + ")").trigger('click');
Run Code Online (Sandbox Code Playgroud)

你可以用Math.random.

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

编辑

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