通过选择随机ID通过JQuery分配类
我有一系列div,每个都有一个增量ID:
contents contents contents contents contents contents
…
我试图通过ID来选择一个类: $('#id').addClass('someClass');
但我希望从我在那里的范围中随机选择’#id’。 范围可能相当大,可能高达50 ids或更多。 我猜这必须读取ID作为数字,对吗? 我如何获得随机数?
……这是完整的方案:
setInterval ( "flipit()", 3000 ); function flipit ( ) { $(document).ready(function(){ var elmId = 'nS_' + (Math.floor(Math.random() * 6) + 1); $('#' + elmId).addClass('numSen2'); }); }
.numSen { visibility: hidden; } .numSen2 { visibility: visible; } contents contents contents contents contents contents
'#id'
只是一个字符串。 因此,在修复您的ID(它们必须以字母开头)之后,像在其他任何地方一样构建一个字符串:
var elmId = 'somePrefix_' + (Math.floor(Math.random() * 5) + 1); $('#' + elmId).addClass('someClass');
我会重新训练你的元素,以便他们提前上课。 这样,您可以从要更改的元素中选择一个元素,而不是所有元素。
contents contents contents contents contents contents
然后在你的JavaScript中:
var elements = $('.addClassToMe'); $(elements[Math.floor(Math.random()*elements.length)]).addClass('someClass');
未经测试,但应该工作,或接近它。
你可以做得更短。 这将选择一个随机id
在1-100之间的div
和hide()
它:
$('div#'+~~(Math.random()*101)).hide();
编辑:
var $divs = $('div'), len = $divs.length; $divs.filter('#'+~~(Math.random()*++len)).hide();
将Math.floor
与Math.random()
结合使用可创建随机选择器:
var selector = '#' + (Math.floor(Math.random() * 50) + 1); $(selector).html();