jQuery可排序-使用元素';将数据作为属性?

jQuery可排序-使用元素';将数据作为属性?,jquery,jquery-ui-sortable,Jquery,Jquery Ui Sortable,我想使用sortable(“toArray”)方法。但是,我不想使用元素的id的默认属性。我知道我可以这样做: var arr = ("#my_list").sortable("toArray", { attribute: something_else }); 但我相信这不是数据值,而是元素的正常属性。相反,我希望能够使用我存储在元素本身中的一些数据 例如,我的sortable列表中的一个列表项可能如下所示(使用FireBug查看时……我猜它看起来有点不同): 服务|汉考克 sch_item=

我想使用
sortable(“toArray”)
方法。但是,我不想使用元素的
id
的默认属性。我知道我可以这样做:

var arr = ("#my_list").sortable("toArray", { attribute: something_else });
但我相信这不是数据值,而是元素的正常属性。相反,我希望能够使用我存储在元素本身中的一些数据

例如,我的
sortable
列表中的一个列表项可能如下所示(使用FireBug查看时……我猜它看起来有点不同):

服务|汉考克
sch_item=“189”
woID=“R-130109-072”
woType=“R”
title=“服务|汉考克”
backgroundColor=“红色”
pos=“3”
rt_项目=192
因此,通过上面的
  • 我有
    schu项
    woID
    woType
    标题
    背景色
    pos
    ,以及
    rt\u项
    。理想情况下,我将能够使用这些数据值中的一个生成一个数组,这样我的数组看起来像这样:
    [,]
    等等


    这可能吗

    考虑到这一点,有一种方法可以做到。您可以创建自己的迭代器

    因此,如果希望在每次对列表排序时生成
    schu项的排序数组

    $("#my_list").sortable({
       stop: function(event, ui) {
             var arrayOfCustomData = [];
             $(this).find('li').each(function(index, item) {
                     arrayOfCustomData[index] = item.data('sch_item');
             });
             $(this).data('sch_item_sorted',arrayOfCustomData);
       }
    });
    

    然后,您可以随时使用
    $(“#mylist”).data('schu item_sorted')检索已排序的列表

    您的HTML看起来有点错误-那些数据值应该在li标记内?当我在FireBug中查看代码时,数据值不在
  • 标记内,而是粘在元素的末尾。好的,我现在明白了。您正在使用
    .data()
    存储元素上的数据,并使用类似FireQuery的插件查看元素。我认为不可能按你的要求去做。您必须将数据作为显式的
    data-*
    属性添加到元素中。例如,
  • Hmm。。。好的,谢谢你的帮助。
    $("#my_list").sortable({
       stop: function(event, ui) {
             var arrayOfCustomData = [];
             $(this).find('li').each(function(index, item) {
                     arrayOfCustomData[index] = item.data('sch_item');
             });
             $(this).data('sch_item_sorted',arrayOfCustomData);
       }
    });