2016-09-16 76 views
0

我想知道如何从包括序列化从排序使用儿童jQueryUI的UL李

<ul class="menu send ui-sortable"> 
<li id="pageid_1" class="ui-sortable-handle">Inscription 
    <ul class="menu send ui-sortable"> 
     <li id="pageid_2" class="ui-sortable-handle">Joueurs en ligne 
       <ul class="menu send ui-sortable"></ul> 
     </li> 
    </ul> 
</li> 

的UL创建一个JSON或序列化(均是罚款),我无法找到如何创建是这样的:

pageid[]=1&pageid[1]=2 OR [{"pageid":1,"children":[{"pageid":2}]}]

含义,包括[]父ID。

谢谢你的帮助!

+1

你有什么** **准确预期的输出 - 同样,如果有人愿意为你编写所有代码 –

+0

'pageid [] = 1&pageid [1] = 2'(pageid [parent pageid] = ..) – orugari

+0

因此,在问题中已经显示,您希望确切的输出...这不会发生 –

回答

1

此代码将产生输出所需

var result = [].map.call(document.querySelectorAll('ul.menu.send.ui-sortable li.ui-sortable-handle'), function(li) { 
    var parent = ''; 
    if (li.parentNode && li.parentNode.parentNode && li.parentNode.parentNode.nodeName == 'LI' && li.parentNode.parentNode.matches('li.ui-sortable-handle')) { 
     parent = li.parentNode.parentNode.id.replace(/\D+/g, ''); 
    } 
    return "pageid[" + parent + "]=" + li.id.replace(/\D+/g, ''); 
}).join('&'); 
console.log(result); // pageid[]=1&pageid[1]=2 

我还没有想过怎么做第二格式,因为第一格式是比较容易产生

+0

真棒!它完美的作品! – orugari

+1

是的,只是因为我跟你争论使用JSON这个词,并不意味着我没有对它做任何事情:p –

+0

啊哈,对不起。万分感谢 – orugari