【问题标题】:Serialize from ul li with child using jqueryui sortable使用 jqueryui 可排序从 ul li 与子序列化
【发布时间】:2017-01-24 11:59:06
【问题描述】:

我想知道如何从 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&amp;pageid[1]=2[{"pageid":1,"children":[{"pageid":2}]}]

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

感谢您的帮助!

【问题讨论】:

  • 您的确切预期输出是什么 - 另外,如果有人愿意为您编写所有代码,您会很幸运
  • pageid[]=1&amp;pageid[1]=2 (pageid[parent pageid]=..)
  • 所以,根据您在问题中显示的输入,您期望准确的输出......这不会发生
  • 手动创建一个 JSON 输出怎么样?使用 .each() 并寻找父母 ID?
  • manually create a JSON output - 你怎么能将他的预期输出等同于 JSON?它甚至不接近 JSON

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


【解决方案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

我还没有想过第二种格式怎么做,因为第一种格式比较容易制作

【讨论】:

  • 是的,只是因为我和你争论 JSON 这个词的使用,并不意味着我没有做任何事情:p
  • 啊,抱歉。非常感谢
猜你喜欢
  • 2018-05-29
  • 2012-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-16
  • 2013-09-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多