我点击“播放”,它消失,然后显示“停止”按钮。
<a onclick="$('#detecteur-play').hide();$('#ID1').show();" id="detecteur-play">Play</a>
<a style="display:none;" id="ID1">STOP1</a>
<a style="display:none;" id="ID2">STOP2</a>
使用此代码,它将始终显示相同的“STOP1”链接。现在我想在我的STOP1
或STOP2
链接之间随机选择,但我不知道该怎么做。我怎么能这样做?
答案 0 :(得分:0)
以下应该可以正常工作:
$("a[id^=ID]:eq(" + Math.floor(Math.random() * $("a[id^=ID]").length) + ")").show();
我们在做什么?
让我们从内到外。我们使用Math.random()
给出了0到1之间的随机数(例如0.223),并将它乘以<a>
元素的数量。如果Math.random()
返回0.6
,并且有2个<a>
个元素,我们将四舍五入到1
,否则我们将四舍五入到0
。然后我们将值(您的索引不能为0.282
)设置为0
或1
。最后我们使用eq()
过滤器来表示我们只想要第n个<a>
元素,我们使用show()
来显示它。我们的a
选择器a[id^=ID]
表示“一个id
属性的元素开头使用字符串ID
“。
答案 1 :(得分:0)
试试此演示:http://jsfiddle.net/txGuu/8/
var r = Math.floor(Math.random() * 2) + 1;
$("#ID"+r).show();
答案 2 :(得分:0)
http://jsbin.com/asedoj/1/edit
不要使用内联JS,它几乎无法维护 创建一个函数,为您生成所需范围内的随机数:
<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();
});
我使用的~~运算符是双非运算符运算符,用于替换Math.floor