Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.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 通过分块元素循环_Javascript_Html_For Loop_Foreach - Fatal编程技术网

Javascript 通过分块元素循环

Javascript 通过分块元素循环,javascript,html,for-loop,foreach,Javascript,Html,For Loop,Foreach,我有3个div(col-md-4),其中有div块。我试图按行获取元素(好像父元素是一个col-md-12,而不是它们被分割的col-md-4s),但我不知道如何实现它 为了澄清这个问题(并简化它),我在下面添加了数据顺序属性,以显示它的确切顺序以及我希望如何对它们进行排序 为了避免混淆,我更新了问题并添加了数据id属性;假设您根本没有数据顺序属性;我只是想澄清一下顺序。 <div class="col-md-4 parent"> <div class="child"

我有3个div(
col-md-4
),其中有div块。我试图按行获取元素(好像父元素是一个col-md-12,而不是它们被分割的col-md-4s),但我不知道如何实现它

为了澄清这个问题(并简化它),我在下面添加了
数据顺序
属性,以显示它的确切顺序以及我希望如何对它们进行排序

为了避免混淆,我更新了问题并添加了
数据id
属性;假设您根本没有
数据顺序
属性;我只是想澄清一下顺序。

<div class="col-md-4 parent">
    <div class="child" data-id="3" data-order="1"></div>
    <div class="child" data-id="4" data-order="4"></div>
    <div class="child" data-id="8" data-order="7"></div>
</div>

<div class="col-md-4 parent">
    <div class="child" data-id="1" data-order="2"></div>
    <div class="child" data-id="2" data-order="5"></div>
</div>

<div class="col-md-4 parent">
    <div class="child" data-id="11" data-order="3"></div>
    <div class="child" data-id="7" data-order="6"></div>
</div>
实现这一目标最合适的方法是什么?你将如何处理这种情况


像这样:

 parent(1)-child(1)
 parent(2)-child(1)
 parent(3)-child(1)
 parent(X)-child(1)

 parent(1)-child(2)
 parent(2)-child(2)
 parent(3)-child(2)
 parent(X)-child(2)

 parent(1)-child(3)
 parent(2)-child(3)
 parent(3)-child(3) and so on...

使用循环在每个
父项上迭代,直到集合已满:

const collection=[];
const totalChildren=$('.child').length;
for(设i=0;collection.length{
if(parent.children[i])collection.push(parent.children[i]);
});
}
控制台日志(收集)


在本例中,我放置了3x
col-md-4
,但可以更多,但这并不重要;因为我试图实现的是:
parent(1)-child(1)
parent(2)-child(1)
parent(3)-child(1)
[循环第一个孩子后,开始循环第二个孩子]
parent(1)-child(2)
parent(2)-child(2)
parent(3)-child(2)
parent(1)-child>,
parent(2)-孩子(3)
家长(3)-孩子(3)
,等等-更新:我明白你的意思,我忘了给孩子添加
,修复了这个问题。不幸的是,你搞错了:(假设你不知道
数据顺序
属性(我放它们只是为了澄清我的意思)。我已经更新了这个问题。想象一下,
数据顺序
根本不存在,您需要按该顺序对元素进行排序。如果您能更新答案或删除它,我将不胜感激。如果
数据顺序
不存在,将如何确定元素在集合中的排序?或者您想要什么要在Javascript中硬编码的顺序?还是您希望它们按照
数据id
进行排序?就像我之前在OP中的评论:
parent(1)-child(1)
parent(2)-child(1)
parent(3)-child(1)
parent(3)-child(1)
[循环第一个孩子后,开始循环第二个孩子]
parent(1)-child(2)
parent(2) -子(2)
父(3)-子(2)
父(1)-子(3)
父(2)-子(3)
父(3)-子(3)
等等;而不是明确的3个父(3)-子(2)
,所以在OP示例中:“3,1,11,4,2,7,8”
 parent(1)-child(1)
 parent(2)-child(1)
 parent(3)-child(1)
 parent(X)-child(1)

 parent(1)-child(2)
 parent(2)-child(2)
 parent(3)-child(2)
 parent(X)-child(2)

 parent(1)-child(3)
 parent(2)-child(3)
 parent(3)-child(3) and so on...