Javascript 未知元素数的Jquery循环
我试图找出如何使用未知数量的元素构建forEach循环。随机选择一个,对其执行XYZ操作。让它可见。不要考虑这个因素。重复从其余元素中拾取随机数 到目前为止,我的想法是创建一个元素id数组。使用array.forEach在其上循环。从数组中随机选择一个元素。执行XYZ,然后从数组中删除所选id,然后重复执行,直到forEach过期 首先,如果你能想出一个更好的方法,我愿意接受任何想法 我没走多远就遇到了第一个障碍,那就是动态生成id数组 我得到了元素的数量,他们永远是父母的孩子,所以不用担心Javascript 未知元素数的Jquery循环,javascript,jquery,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 );
}
感谢您提供有关改进此设计/方法的任何想法/提示。尝试类似的方法
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);
}
演示:您不能迭代jQuery对象吗?不推荐使用大小。。。使用length属性代替$'PartialContainer'。children.eachfunction{…};eq对我来说是新的,阅读它表明它正是我想要的。然后Math.random生成一个介于0到1之间的随机数,然后将其相乘,最后将其从堆栈中弹出。非常感谢你!