通过选择随机ID通过JQuery分配类

时间:2012-02-26 03:35:55

标签: jquery

我有一系列div,每个div都有一个增量ID:

<div id="1">contents</div>
<div id="2">contents</div>
<div id="3">contents</div>
<div id="4">contents</div>
<div id="5">contents</div>
<div id="6">contents</div>

...

我正在尝试通过ID:$('#id').addClass('someClass');选择通过JQuery分配一个类,但我希望从我所在的范围中随机选择'#id'。范围可能相当大,可能高达50 ids或更多。我猜这必须读取ID作为数字,对吗? 我如何在那里得到随机数?

......这是完整的方案:

setInterval ( "flipit()", 3000 );

function flipit ( ) {
    $(document).ready(function(){
        var elmId = 'nS_' + (Math.floor(Math.random() * 6) + 1);
        $('#' + elmId).addClass('numSen2');
    });
}
<style type="text/css">

.numSen {
    visibility: hidden;
}
.numSen2 {
    visibility: visible;
}

</style>

<div class="numSen" id="nS_1">contents</div>
<div class="numSen" id="nS_2">contents</div>
<div class="numSen" id="nS_3">contents</div>
<div class="numSen" id="nS_4">contents</div>
<div class="numSen" id="nS_5">contents</div>
<div class="numSen" id="nS_6">contents</div>

4 个答案:

答案 0 :(得分:1)

'#id'只是一个字符串。因此,在修复您的ID(它们必须以字母开头)之后,像在其他任何地方一样构建一个字符串:

var elmId = 'somePrefix_' + (Math.floor(Math.random() * 5) + 1);
$('#' + elmId).addClass('someClass');

答案 1 :(得分:1)

我会重新训练你的元素,以便他们提前上课。这样,您可以从要更改的元素中选择一个元素,而不是一切。

<div class="addClasstoMe">contents</div>
<div class="addClasstoMe">contents</div>
<div class="addClasstoMe">contents</div>
<div class="addClasstoMe">contents</div>
<div class="addClasstoMe">contents</div>
<div class="addClasstoMe">contents</div>

然后在你的JavaScript中:

var elements = $('.addClassToMe');
$(elements[Math.floor(Math.random()*elements.length)]).addClass('someClass');

未经测试,但应该有效,或接近它。

答案 2 :(得分:0)

Math.floorMath.random()结合使用以创建随机选择器:

var selector = '#' + (Math.floor(Math.random() * 50) + 1);

$(selector).html();

答案 3 :(得分:0)

你可以做得更短。这将在1-100和div之间选择id随机hide()

$('div#'+~~(Math.random()*101)).hide();

修改

var $divs = $('div'), len = $divs.length;
$divs.filter('#'+~~(Math.random()*++len)).hide();