我有一组<tr>
元素,我想批量排序,即每排第n个元素用于排序算法中的比较,随后的n-1元素随第n个元件。 (更新:我要澄清,我没有对HTML控件)按javascript中的每第n个元素排序
在下列情况下,该行由第1的值按字母顺序排列,第4 & 7元即苹果,香蕉&椰子。以下他们随后的2个<tr>
元件与它们一起移动即3.
批次之前排序:
<tr> Banana </tr>
<tr> - Shake </tr>
<tr> - Chips </tr>
<tr> Apple </tr>
<tr> - Juice </tr>
<tr> - Sauce </tr>
<tr> Coconut </tr>
<tr> - Curry </tr>
<tr> - Water </tr>
排序后:
<tr> Apple </tr>
<tr> - Juice </tr>
<tr> - Sauce </tr>
<tr> Banana </tr>
<tr> - Shake </tr>
<tr> - Chips </tr>
<tr> Coconut </tr>
<tr> - Curry </tr>
<tr> - Water </tr>
有例如一些直线向前的方式将其拆分为3个列表,并正常排序第一个列表。然后根据第一个列表排序第二个第二个&。我的问题是,是否可以在array.sort([compareFunction])
的比较函数中执行?
更新: 另一种方法是将其转换成一个数组这样
[['Banana','- Shake', '- Chips'],['Apple', '- Juice','- Sauce'],['Coconut','- Curry', '- Water']]
像这样sort(function(a, b) {return a[0] - b[0]})
你的主要问题与操纵DOM的排序没有太大关系。您提供的HTML并不完全适合您要执行的任务 - 子项与父母出现在同一顶层,父母和子女之间没有任何关系,而是含糊不清的“这些事情随之而来并开始'''是我的孩子“。我会从改进HTML开始,否则任何解决方案都会变得脆弱。 – Jon
模数操作是选择项目的好起点。 – cr0
@Jon:我无法控制HTML,但我知道每个第n个元素都是关键。 – Medorator