我有一系列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>
答案 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.floor
与Math.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();