随机显示配对元素

时间:2014-04-24 12:53:23

标签: javascript jquery css

有没有办法在不包装

的情况下将元素与同一个类配对
<div class="pair1">1</div>
<div class="pair1">2</div>

<div class="pair2">3</div>
<div class="pair2">4</div>

<div class="pair3">5</div>
<div class="pair3">6</div>

然后在页面刷新/加载时随机显示配对元素 所以输出将是1 2或3 4或5 6

FIDDLE here

3 个答案:

答案 0 :(得分:4)

您可以使用:

var pairs = $('.pair1, .pair2, .pair3');

var random = Math.floor(Math.random() * pairs.length / 2)+1;
var output = pairs.filter('.pair'+random)

output.show();

由于你有成对,你需要将长度调整为2。

然后,当你有随机数时,你会得到这对号码。

http://jsfiddle.net/tQ5ZP/2/

答案 1 :(得分:1)

尝试,

var pairs = ['.pair1', '.pair2', '.pair3'];
var div = $("div[class^='pair']");

var random = Math.floor(Math.random() * pairs.length);
var output = div.filter(pairs[random]);

output.show();

DEMO

答案 2 :(得分:0)

Working demo

var pairs = ['.pair1','.pair2','.pair3']; // Create an array of strings

var random = Math.floor(Math.random() * pairs.length);
var output = pairs[random]; // choose a string at a random index in your array

$(output).show(); // use random string as selector

或者,如果你有任意数量的对,你可以动态构建你的数组:

Working demo

var pairs = [];

$('div').each(function() {
    var theClass = $(this).attr('class');
    pairs.push('.' + theClass);
});

var random = Math.floor(Math.random() * pairs.length);
var output = pairs[random];

$(output).show();