Javascript 按行和列对元素进行排序
我有数字4,列数 此外,我还有一个无序列表,其中包含X个元素Javascript 按行和列对元素进行排序,javascript,html,Javascript,Html,我有数字4,列数 此外,我还有一个无序列表,其中包含X个元素 <ul> <li>element 1</li> <li>element 1</li> <li>element 1</li> <li>element 1</li> <li>element 1</li> <li>element 1</li> <li&g
<ul>
<li>element 1</li>
<li>element 1</li>
<li>element 1</li>
<li>element 1</li>
<li>element 1</li>
<li>element 1</li>
<li>element 1</li>
etc.
</ul>
- 要素1
- 要素1
- 要素1
- 要素1
- 要素1
- 要素1
- 要素1
等
我想要以下输出:
<ul>
<li data-row="1" data-column="1">element 1</li>
<li data-row="1" data-column="2">element 1</li>
<li data-row="1" data-column="3">element 1</li>
<li data-row="1" data-column="4">element 1</li>
<li data-row="2" data-column="1">element 1</li>
<li data-row="2" data-column="2">element 1</li>
<li data-row="2" data-column="3">element 1</li>
etc.
</ul>
元素1
元素1
元素1
元素1
元素1
元素1
元素1
等
如何巧妙地实现这一点?除法和模:
lis = yourULElement.getElementsByTagName('li') // the <li> elements
limit = 4 // your number
for (var i = 0; i < lis.length; i ++) {
lis[i].setAttribute('data-row', Math.floor(i / limit) + 1)
lis[i].setAttribute('data-column', i % limit + 1)
}
你说的
是什么意思?我有数字4
?这太棒了。这是正确的方法,但数字并不完全正确。行为0,0,0,1,1,1,1,2,2,2,3,3等,列为1,2,3,0,1,2,3,0,1,2,3,0@tolborg不,他们不是。你试过小提琴吗?@Doorknow对不起,我没看到你更改了密码。这太棒了@托尔伯格很乐意帮忙!:)