使用jqueryui sortable从子li序列化

时间:2016-09-16 09:45:10

标签: javascript jquery json serialization jquery-ui-sortable

我想知道如何从ul创建一个JSON或序列化(两者都很好),包括

<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>

我找不到如何创建这样的东西:

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

含义,包括[]中的父ID。

感谢您的帮助!

1 个答案:

答案 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

我还没有想过如何制作第二种格式,因为第一种格式更容易制作