我想知道是否有办法让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()选择器.
你可以在这里了解更多相关信息
这是一个扩展功能
$.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)
$("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开始.
| 归档时间: |
|
| 查看次数: |
9945 次 |
| 最近记录: |