我试图找出如何使用未知数量的元素构建forEach循环。随机选择一个,对它做XYZ。让它可见。从考虑中删除该元素。重复从剩余元素中选择一个随机数。
到目前为止,我的想法是制作一系列元素id。使用array.forEach()循环它们。从数组中随机选择一个元素。执行XYZ然后从数组中删除所选的id然后重复直到forEach到期。
首先,如果你能想到一个更好的方式,我会对所有想法持开放态度。
在我遇到第一个包版之前我没有走多远,这是动态生成id的数组。
我得到了元素的数量(他们将永远是父母的孩子,所以不用担心。
//get count of all elements and loop till all are visible
var elementCount = $('#PartialsContainer').children().size();
接下来我转到生成我的数组,但它会导致数组中的一个元素保存elementCount的值。
//create array of quantity
var elementArray = $.makeArray( elementCount );
所以我可以通过元素循环获取他们的ID,但肯定有更好的方法吗?
for (var i = 0; i < elementCount; i++)
{
elementArray.push( $element[i] //its pseudo code I know it won't work );
}
感谢您提供有关改进此设计/方法的任何想法/提示。
答案 0 :(得分:2)
尝试类似
的内容var $els = $('#PartialsContainer').children();
while($els.length){
var $el = $els.eq(Math.floor(Math.random() * $els.length));
//do something with $el
$els = $els.not($el);
}
演示:Fiddle