我想知道如何从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。
感谢您的帮助!
答案 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
我还没有想过如何制作第二种格式,因为第一种格式更容易制作