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();
});