Jquery循环上未知数量的元素

时间:2013-12-12 00:26:06

标签: javascript jquery

我试图找出如何使用未知数量的元素构建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 );
}

感谢您提供有关改进此设计/方法的任何想法/提示。

1 个答案:

答案 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