【发布时间】:2011-04-10 13:22:11
【问题描述】:
获取元素列表并按字母顺序对它们进行排序没有任何问题,但我很难理解如何使用模数。
### 更新###
这是“我的方式”工作的代码,但是,我更喜欢下面提供的答案的可重用性,因此接受了该答案。
<script type="text/javascript">
$(document).ready( function() {
$('.sectionList2').each( function() {
var oldList = $('li a', this),
columns = 4,
newList = [];
for( var start = 0; start < columns; start++){
for( var i = start; i < oldList.length; i += columns){
newList.push('<li><a href="' + oldList[i].href + '">' + $(oldList[i]).text() + '</a></li>');
}
}
$(this).html(newList.join(''));
});
});
</script>
例如。假设我有以下无序列表:
<ul>
<li><a href="~">Boots</a></li>
<li><a href="~">Eyewear</a></li>
<li><a href="~">Gloves</a></li>
<li><a href="~">Heated Gear</a></li>
<li><a href="~">Helmet Accessories</a></li>
<li><a href="~">Helmets</a></li>
<li><a href="~">Jackets</a></li>
<li><a href="~">Mechanic's Wear</a></li>
<li><a href="~">Pants</a></li>
<li><a href="~">Protection</a></li>
<li><a href="~">Rainwear</a></li>
<li><a href="~">Random Apparel</a></li>
<li><a href="~">Riding Suits</a></li>
<li><a href="~">Riding Underwear</a></li>
<li><a href="~">Socks</a></li>
<li><a href="~">Vests</a></li>
</ul>
我将此列表设置为显示在 4 列中,每个 li 向右浮动。从视觉上看,这使得在较大列表中查找项目变得困难。我需要的输出是这样的:
<ul>
<li><a href="~">Boots</a></li>
<li><a href="~">Helmet Accessories</a></li>
<li><a href="~">Pants</a></li>
<li><a href="~">Riding Suits</a></li>
<li><a href="~">Eyewear</a></li>
<li><a href="~">Helmets</a></li>
<li><a href="~">Protection</a></li>
<li><a href="~">Riding Underwear</a></li>
<li><a href="~">Gloves</a></li>
<li><a href="~">Jackets</a></li>
<li><a href="~">Rainwear</a></li>
<li><a href="~">Socks</a></li>
<li><a href="~">Heated Gear</a></li>
<li><a href="~">Mechanic's Wear</a></li>
<li><a href="~">Random Apparel</a></li>
<li><a href="~">Vests</a></li>
</ul>
我正在寻找的是一个函数,我可以传递我的列表项数组并返回我的数组,按字母顺序排序,并带有选择的模数;在这种情况下 4.
任何帮助将不胜感激,因为我找不到有关该主题的文档。
【问题讨论】:
-
你能发布你已经拥有的代码吗?
-
而且,假设您是从后端开发的,为什么不在服务器端执行此操作?
-
其实有一个 CSS 解决方案,
column-count -
后端解决方案是理想的,但在这种情况下是不可能的。到目前为止,我所拥有的东西正在爆炸,这不是一个很好的起点。
标签: javascript jquery sorting modulus