我一直在研究這個jsFiddle並希望擴展功能,以便當列表項被更改並通過表單提交時,相關表tbodys會自行排序以相同的順序作爲其列表項的同行:按照與列表元素相同的順序排序表tbody的順序jquery json
是否有可能從一個元素的順序映射到另一個像這樣的jQuery的?
我對動畫的東西沒有興趣,但是這個新的要求讓我有些不解。
我一直在研究這個jsFiddle並希望擴展功能,以便當列表項被更改並通過表單提交時,相關表tbodys會自行排序以相同的順序作爲其列表項的同行:按照與列表元素相同的順序排序表tbody的順序jquery json
是否有可能從一個元素的順序映射到另一個像這樣的jQuery的?
我對動畫的東西沒有興趣,但是這個新的要求讓我有些不解。
我沒有得到ajax調用應該做的事情,所以我跳過了這部分。但是根據列表順序依據表格的邏輯在表單的提交操作上存在。我還重新組織瞭如何使用tbody
標籤,因爲它並不真正有助於讓每個tr
位於其自己的tbody
標籤內。
更新的jsfiddle:http://jsfiddle.net/8vWXZ/24/
的代碼,這裏有它的SO:
(#tableOrder
是其tr
小號我們是根據li
S的的ul#reOrder
內的順序進行重新排序表)
$('#frmItems').submit(function() {
var tbl = $("#tableOrder tbody");
$("#reOrder li").each(function(index) {
var li_id = $(this).attr("id");
//Find the number of the item. Eg "item4" should result in "4"
var li_item_number = li_id.match(/item([0-9]*)/)[1];
//Inside #tableOrder, find the element (a <tr>) with id corresponding the this <li>'s id. Eg "item4"'s corresponding table row's id is "#tbl-item4"
var correspondingTR = tbl.find("#tbl-item" + li_item_number);
tbl.append(correspondingTR);
});
我也做了一個更多的修改。由於ID應該是唯一的,因此您已將li
元素和tr
元素都設置爲相同的ID(例如item1
),這很糟糕(mmkay)。因此,我將tableOrder
中的tr
s更改爲ID tbl-item1
等。
li_id.match(/item([0-9]*)/)[1]
是regex的匹配項。基本上,它在字符串中搜索一個模式,我們可以從該字符串中繪製某些部分。是什麼樣子的是斜線內的模式,所以它尋找類似itemX
其中X
是一個數字([0-9]
說,我們感興趣的任何數量從0到9)。它會返回一個數組,並在指數1
該項目是我們感興趣的數量
關於append
:
的.each
穿過li
s,這是在正確的爲了。對於每一個,它將相應的tr
添加到該表的端。因爲表格中的所有tr
將被「觸摸」,這意味着它從頭開始構建tr
的順序。第一個tr
被附加,是頂部的一個。最後一個要添加的是底部的那個(如tr
,現場附加在迭代中n) 我做了兩個演示,其有效性值得懷疑,但您可能會發現它們很有幫助。 http://jsfiddle.net/bGGRT/和http://jsfiddle.net/bGGRT/1/
我試圖解決這個問題,並更新了這裏的jsFiddle: http:// jsfiddle。淨/ 8vWXZ/22/ 我想使用該插件位於: http://stackoverflow.com/questions/929519/dynamically-arranging-divs-using-jquery/929607#929607 但。不想打球對我來說:( – RyanP13 2010-08-17 16:59:02