在两个<a></a>之间随机选择

时间:2013-07-28 20:26:05

标签: javascript jquery

我点击“播放”,它消失,然后显示“停止”按钮。

<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”链接。现在我想在我的STOP1STOP2链接之间随机选择,但我不知道该怎么做。我怎么能这样做?

3 个答案:

答案 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)设置为01。最后我们使用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