我有几个相同类别的 div。我想为每个 div 随机添加一个(不同的)类,但不要在彼此之后重复添加的类。
这是我的示例 html:
<div class="sometext"> some text here </div>
<div class="sometext"> some other text here </div>
<div class="sometext"> some more text here </div>
<div class="sometext"> some more text here </div>
<div class="sometext"> some more text here </div>
应添加的示例 css:
.addedclass1 {...}
.addedclass2 {...}
.addedclass2 {...}
.addedclass3 {...}
.addedclass4 {...}
我最想看到的是:
<div class="sometext addedclass3"> some text here </div>
<div class="sometext addedclass2"> some other text here </div>
<div class="sometext addedclass4"> some more text here </div>
<div class="sometext addedclass1"> some more text here </div>
<div class="sometext addedclass2"> some more text here </div>
我有一些 jquery 可以随机化添加的类,但它允许重复:
$(document).ready(function() {
var classes = ['addedclass1', 'addedclass2', 'addedclass3', 'addedclass4'];
$('.sometext').each(function(i) {
$(this).addClass(
classes[Math.floor(Math.random()*classes.length)]);
});
});
我很乐意提供任何帮助——我是个该死的初学者:)
最佳答案
每次我都会创建一个临时数组,其中包含类中除先前使用的类之外的所有元素。然后从中随机选择一个。
JS fiddle :http://jsfiddle.net/9AbRQ/
var classes = ['addedclass1', 'addedclass2', 'addedclass3', 'addedclass4'];
var prevClass = "";
$('.sometext').each(function() {
var classes2 = [];
for (var i = 0; i < classes.length; i++) {
if (classes[i] !== prevClass) {
classes2.push(classes[i]);
}
}
$(this).addClass(prevClass = classes2[Math.floor(Math.random()*classes2.length)]);
});
关于jquery - 为具有相同类别的 div 随机添加类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20978657/