我有一組<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