2016-09-16 64 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