Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未知元素数的Jquery循环_Javascript_Jquery - Fatal编程技术网

Javascript 未知元素数的Jquery循环

Javascript 未知元素数的Jquery循环,javascript,jquery,Javascript,Jquery,我试图找出如何使用未知数量的元素构建forEach循环。随机选择一个,对其执行XYZ操作。让它可见。不要考虑这个因素。重复从其余元素中拾取随机数 到目前为止,我的想法是创建一个元素id数组。使用array.forEach在其上循环。从数组中随机选择一个元素。执行XYZ,然后从数组中删除所选id,然后重复执行,直到forEach过期 首先,如果你能想出一个更好的方法,我愿意接受任何想法 我没走多远就遇到了第一个障碍,那就是动态生成id数组 我得到了元素的数量,他们永远是父母的孩子,所以不用担心 /

我试图找出如何使用未知数量的元素构建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之间的随机数,然后将其相乘,最后将其从堆栈中弹出。非常感谢你!