jquery - 如何使用 Jquery 序列化多个列表

标签 jquery jquery-ui multidimensional-array serialization

我有 3 个可排序的 UL 和一个简单的 jquery/javascript

<ul class="sortable" id="menu1">
  <li id="id_1">whatever</li>
  <li id="id_2">you</li>
</ul>
<ul class="sortable" id="menu2">
  <li id="id_3">wanne</li>
  <li id="id_4">put</li>
</ul>
<ul class="sortable" id="menu3">
  <li id="id_5">in</li>
  <li id="id_6">here</li>
</ul>
$(function() {
    $("ul.sortable").sortable({
        connectWith: 'ul'
        });
    });
</script>

LI 可以在 UL 之间拖动 我如何序列化它,以便我得到例如 menu1[0]=1&menu1[1]=3 或者数组或者任何我可以用来保存状态的东西?

最佳答案

已更新

演示: http://jsbin.com/evoru4/2

在你的情况下使用这个:

$(function() {
    $("ul.sortable").sortable({
        connectWith: '.sortable',
        update: function(event, ui) {
        var position = $('.sortable').serial();
        alert( position );
        }
    });
});

//此函数使您的 UL LI 成为序列化对象

(function($) {
    $.fn.serial = function() {
        var array = [];
        var $elem = $(this);
        $elem.each(function(i) {
            var menu = this.id;
            $('li', this).each(function(e) {
                array.push(menu + '[' + e + ']=' + this.id);
            });
        });
        return array.join('&');
    }
})(jQuery);

这会给你这样的东西:

menu1[0]=id_1&menu1[1]=id_2&menu2[0]=id_4&menu2[1]=id_6&menu3[0]=id_5&menu3[1]=id_3

表示每个元素的位置顺序

关于jquery - 如何使用 Jquery 序列化多个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2936999/

相关文章:

javascript - 使用 .map 函数从 JSON 对象中删除一个值

javascript - highcharts group series 点击事件获取类别中的所有数据

java - 从多维数组读取值的问题

jQuery 检测页面上任意位置的粘贴事件并将 "Redirect"粘贴到 Textarea

ajax - Jquery ajaxSubmit 也执行常规表单提交

javascript - JQuery-UI 遏制 : 'parent' does not work

javascript - 为什么当我在 IE7 中隐藏 DIV 时,我的单选按钮全部取消选择?

jQuery UI sortable() - listitem 在 Safari 和 Chrome 中跳到顶部

PHP 多维数组求和/删除问题

c++ - 初学者 C++ 使用访问器/ getter 从私有(private)成员变量(二维数组)中提取数据