Javascript JQuery选择某一行之后的所有div(div按随机顺序排列,绝对定位)

Javascript JQuery选择某一行之后的所有div(div按随机顺序排列,绝对定位),javascript,jquery,css,jquery-selectors,Javascript,Jquery,Css,Jquery Selectors,我有一个大小相等的网格,绝对位置是随机排列的div,目前它们有使用columnX和rowY结构的类。其中X和Y是与div位置相对应的变量 所以第四列和第一行中的div将把这两个类column4和row1作为类的属性值。作为解决方案的一部分,我可以更改有关div结构的任何内容 我想选择第1行之后一行中的每个div。有很多div,我不想要一个缓慢的过程。除了必须选择每个现有的div,然后对大于1的数值进行遍历和剖析类属性之外,还有更直接、更有效的方法吗 请注意,因为div的随机绝对定位。下一个安装将

我有一个大小相等的网格,绝对位置是随机排列的div,目前它们有使用columnX和rowY结构的类。其中X和Y是与div位置相对应的变量

所以第四列和第一行中的div将把这两个类column4和row1作为类的属性值。作为解决方案的一部分,我可以更改有关div结构的任何内容

我想选择第1行之后一行中的每个div。有很多div,我不想要一个缓慢的过程。除了必须选择每个现有的div,然后对大于1的数值进行遍历和剖析类属性之外,还有更直接、更有效的方法吗

请注意,因为div的随机绝对定位。下一个安装将非常方便,但无法工作


更新:请看我目前的最佳答案。我相信有更有效的方法可以做到这一点

如果使用一元编码的数字设置行和列数据属性,例如3是111,7是1111111,则可以使用以^=开头的运算符选择属性大于这些属性的元素

//例如,选择第2行第2列之后的所有div //所以有两个选择器,一个选择第2行第2列之后的div,另一个选择第3行、第4行中的所有div,等等,它们是或组合在一起的 函数selectAfterrow,col{ var选择器; 如果行>0&&列>0{ var r=Arrayrow+1.1; var c=Arraycol+1.1; 选择器=container div[data row='+r+'][data column^='+c+1'],container div[data row^='+r+1']; }否则{ 选择器=容器div; } //从这里开始可以替换为 //$selector.addClassselected; //如果使用jquery var divs=document.querySelectorAllselector; 对于变量i=0;i显示您的代码。使用正常定位的div可能比解决此问题更容易。这是2048板吗?是的@James,理想情况下没有人想使用absolute,但网格界面是地图的,所以在这种情况下,绝对定位是必须的,因为当有人在现有页边距外滚动时,新的分幅是如何添加的。@j08691 added Code您没有CSS或JavaScript?您能在我刚才放在这里的url上看看这个解决方案吗,你能告诉我你认为哪一个是最合适的吗?我认为你的解决方案涉及的操作更少,所以应该更密集吗?只是为了更新,我对这两个代码都运行了计时器,我惊讶地发现我的版本运行得更快,请参阅更新:如果我们突然使用jQuery,那么这里是我的更改:它是标题中的第一个单词。谢谢,使用jQuery,您的解决方案确实更快。
<div id="container">
<div id="div3-2" class="column3 row2"></div><div id="div1-1" class="column1 row1"></div>
<div id="div2-3" class="column2 row3"></div><div id="div1-2" class="column1 row2"></div>
<div id="div2-1" class="column2 row1"></div><div id="div2-2" class="column2 row2"></div>
<div id="div3-1" class="column3 row1"></div><div id="div1-3" class="column1 row3"></div>
<div id="div1-2" class="column1 row2"></div><div id="div3-3" class="column3 row3"></div>
</div>