【发布时间】:2016-08-22 17:22:37
【问题描述】:
我有多个 div 组,我需要对其应用一个随机类,并且每个组中都没有重复。完成此操作后,我需要将数组“重置”回原始值,然后移动到下一组 div,在其中我再次对每个 div 应用随机类。
我们的想法是得到如下所示的东西:
<div class="mini-thumbnail-container">
<div class="mini-thumbnail-individual-image left">
<div class="mini-thumbnail-individual-image centre">
<div class="mini-thumbnail-individual-image right">
</div>
<div class="mini-thumbnail-container">
<div class="mini-thumbnail-individual-image centre">
<div class="mini-thumbnail-individual-image right">
<div class="mini-thumbnail-individual-image left">
</div>
<div class="mini-thumbnail-container">
<div class="mini-thumbnail-individual-image right">
<div class="mini-thumbnail-individual-image left">
<div class="mini-thumbnail-individual-image centre">
</div>
等等
我无耻地从另一个 stackoverflow 问题中提取代码来处理这个问题,但我不知道如何让它适用于我的所有元素,而不是前三个。
这是 jQuery:
function shuffle(obj) {
var l = obj.length,
i = 0,
rnd,
tmp;
while (i < l) {
rnd = Math.floor(Math.random() * i);
tmp = obj[i];
obj[i] = obj[rnd];
obj[rnd] = tmp;
i += 1;
}
}
var classes = ["centre", "left", "right"];
shuffle(classes);
jQuery(".mini-thumbnail-individual-image").each(function() {
jQuery(this).addClass(classes.pop());
});
这是我的 div 结构的基本轮廓——我有多个这些我想迭代并将随机类应用于每个 <div class="mini-thumbnail-individual-image">
HTML:
<div class="col-1-6">
<div class="mini-thumbnail-container">
<div class="mini-thumbnail-individual-image">
<img class="mini-thumbnail-image" src="" />
</div>
<div class="mini-thumbnail-individual-image">
<img class="mini-thumbnail-image" src="" />
</div>
<div class="mini-thumbnail-individual-image">
<img class="mini-thumbnail-image" src="" />
</div>
</div>
</div>
我想我需要创建一个看起来在每次迭代数组后触发的循环,一旦它发现数组为空,我需要将类名推回,然后循环下一组 div , 直到每组 div 都应用了一个随机类,但也许还有一种我还没有想到的更简单的方法。
提前致谢!
【问题讨论】:
标签: javascript jquery arrays loops random