我想在每个.elements
上使用jquery设置不同的颜色,他们的子女(.element
)应该具有相同的颜色,但颜色的归属应该是随机的,每个.elements
。我该怎么做 ?如何为循环数组的每组元素设置随机颜色?
下面是一个例子:https://jsfiddle.net/auscpzy6/6/
的Html
<div class="elements"> <!-- children share the same color -->
<div class="element">1</div> <!-- exmaple : red -->
<div class="element">2</div> <!-- exmaple : red -->
</div>
<div class="elements"> <!-- children share the same color -->
<div class="element">3</div> <!-- exmaple : blue -->
<div class="element">4</div> <!-- exmaple : blue -->
<div class="element">5</div> <!-- exmaple : blue -->
</div>
<div class="elements"> <!-- children share the same color -->
<div class="element">6</div> <!-- exmaple : yellow -->
</div>
<div class="elements"> <!-- children share the same color -->
<div class="element">7</div> <!-- exmaple : blue -->
<div class="element">8</div> <!-- exmaple : blue -->
</div>
的Javascript:这是我试过,但都停留在相同的颜色。
function eachEl(el){
var items = ["blue", "red", "yellow"];
var item = items[Math.floor(Math.random()*items.length)];
$(el).css({
"color": item,
});
}
$(".elements").each(function() {
eachEl('.element');
});
任何解决方案?
我看,另一个问题是,这是最好的方式来做到这一点性能明智吗?我发现加载需要一些时间,而且我担心在200个元素上可能会出现滞后现象。 – Lindow
如果你关心性能,那么我建议完全避免jQuery。通过DOM直接循环将会快得多,尽管如果DOM中有很多元素循环遍历 –