将新元素附加到包含列表元素的对象

时间:2014-01-15 05:54:56

标签: jquery

我有一个变量origOrder = $("#sortable").find('li');

和来自ajax响应response.lists的json对象,其中包含列表项

如何将这些新列表添加到origOrder

感谢。我希望你理解我的问题。

修改

我正在使用jquery-ui sortable。我将列表的原始顺序存储到origOrder,因此当用户取消排序时,我可以恢复原始列表。所以我不能再次使用find('li'),因为如果用户开始对列表进行排序,则origOrder将被覆盖。

2 个答案:

答案 0 :(得分:0)

你可以像这样追加

origOrder = $("#sortable").find('li');

origOrder.append(response.lists);

<强>更新

在排序之前保留列表,可以将其保存在变量

var origOrderBeforesort = $("#sortable").find('li');

如果用户应用排序,您可以使用旧变量origOrderBeforesort

答案 1 :(得分:0)

如果我理解正确......

由于将jQuery集合与.add()合并不能可靠地保留顺序,因此您需要保留一组集合,每个集合都是独立可靠的。

最初:

var $sortable = $("#sortable");
var origOrder = [$sortable.find('li')];

然后,每当包含新列表项的响应到达时:

origOrder.push($(response.lists));
$.each(response.lists, function(i, item) {
    $(item).appendTo($sortable);
});

然后,恢复:

$.each(origOrder, function(i, $sublist) {
    $sublist.each(function(j, item) {
        $(item).appendTo($sortable);
    });
});

至少,这是原则。细节可能有所不同。