使用jquery序列化div中的所有id

我正在尝试在CMS上创建页面拖放function的重新排序。 由于某些页面有子页面,因此我们在列表中嵌套了很多列表。 代码示例:

$(document).ready(function(){ $(function() { $('#contentLeft ul').sortable({ update: function() { var order = $('#contentLeft ul').sortable('serialize'); alert(order); } }); }); }); 
  • Test
    • Nested one
    • nested 2
    • Nested 6
  • Test
  • Test

在上面的例子中,当我移动并序列化ul时,我得到返回的顶级列表元素列表(page [] = 1,page [] = 4,page [] = 5)。 我需要的是它序列化所有的li标签,包括子li标签,得到类似的东西(page [] = 1,page [] = 20,page [] = 30,page [] = 40,page [ ] = 4,页面[] = 5)。

我试过很简单地应用序列化

  • 或者像:var order = $(’li’)。sortable(’serialize’); 和var order = $(’ul’)。sortable(’serialize’);
  • 但没有运气。

    谁能指出我正确的指示?

    非常感谢

     $(function() { $('#contentLeft ul').sortable({ update: function() { var order3 = []; $('#contentLeft ul li').each(function(){ order3.push($(this).attr('id').replace(/_/g, '[]=')) }); alert(order3.join('&')); } }); }); 

    试试这里: http : //jsfiddle.net/MXCZx/1/

    或者你可以这样做:

     // serialize input elements within a specific #id $('#id :input').serialize(); // serialize a specific element in the form $('input[name=inputName]').serialize(); 

    几天前为我自己做的:

     function serializeUL(ul){ var children = {}; $(ul).children().each(function(){ var li = $(this), sub = li.children('ul'); children[this.id] = sub.length > 0 ? serializeUL(sub) : null; }) return children; } 

    serializeUL(’#sitemap’)//将返回JSON

     { "page_1": { "page_20":null, "page_30":null, "page_40":null }, "page_4":null, "page_5":null } 

    比特扩展使用示例

    http://jsfiddle.net/acrashik/E2Vte/8/

    没有forms使用。

     $(document).ready(function () { //select html element $('li').click(function () { $(this).toggleClass('selected'); if ($('li.selected').length == 0) $('.select').removeClass('selected'); else $('.select').addClass('selected'); counter(); }); //ajax send id html element $(document).on('click', 'li', function () { $(this).toggleClass("check"); var form = document.querySelectorAll('li.selected'); //select the need classes var id = {};//empty array for (var i = 0; i < form.length; i++) { id[i] = form[i].id; //fill the array } $.ajax({ url: "/site/search", type: 'post', dataType: "json", data: {"selected": id}, success: function(data, response, textStatus, jqXHR) { console.log(data); } }); return false; }); });