我一直在研究这个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