Javascript 在两个选项中随机选择<;a>;
我点击“播放”,它消失,然后显示“停止”按钮Javascript 在两个选项中随机选择<;a>;,javascript,jquery,Javascript,Jquery,我点击“播放”,它消失,然后显示“停止”按钮 播放 停止1 停止2 使用此代码,它将始终显示相同的“STOP1”链接。现在我想在我的STOP1或STOP2链接之间随机选择,但我不知道怎么做。我如何才能做到这一点?以下各项应该可以正常工作: $("a[id^=ID]:eq(" + Math.floor(Math.random() * $("a[id^=ID]").length) + ")").show(); 我们在做什么? 让我们从里向外看。我们使用Math.random(),它给我们一个介于
播放
停止1
停止2
使用此代码,它将始终显示相同的“STOP1”链接。现在我想在我的
STOP1
或STOP2
链接之间随机选择,但我不知道怎么做。我如何才能做到这一点?以下各项应该可以正常工作:
$("a[id^=ID]:eq(" + Math.floor(Math.random() * $("a[id^=ID]").length) + ")").show();
我们在做什么?
让我们从里向外看。我们使用Math.random()
,它给我们一个介于0和1之间的随机数(例如0.223),然后将它乘以
元素的数量。如果Math.random()
返回0.6
,并且有2个
元素,我们将四舍五入到1
,否则我们将四舍五入到0
。然后我们对值进行下限(你不能有0.282
的索引,以得到0
或1
。最后我们使用eq()
过滤器说我们只想要第n个
元素,我们使用show()
来显示它。我们的a
选择器,a[id^=id]
的意思是“具有id
属性且以字符串id
开头的元素。”尝试此演示:
不要使用内联JS,它很难维护。创建一个函数,该函数将为您生成所需范围内的随机数:
<a id="detecteur-play">Play</a>
<a style="display:none;" id="ID1">STOP1</a>
<a style="display:none;" id="ID2">STOP2</a>
我使用的~~运算符是一个双精度非位运算符,用于替换
Math.floor
Math.random()
是您的朋友。我想您应该添加一个选择器,只匹配ID以“ID”开头的链接,它返回1或2(ID1或ID2)
var r = Math.floor(Math.random() * 2) + 1;
$("#ID"+r).show();
<a id="detecteur-play">Play</a>
<a style="display:none;" id="ID1">STOP1</a>
<a style="display:none;" id="ID2">STOP2</a>
// Reusable Randomizer function
function ran(min, max) {
return ~~(Math.random()*(max-min+1))+min;
}
$('#detecteur-play').click(function(){
$(this).hide();
$('#ID'+ran(1,2)).show();
});