【发布时间】:2022-01-22 02:55:44
【问题描述】:
ul li结构
<ul id="sortable" class="sortable ui-sortable">
<li id="home" class="col-sm-12 col-lg-12 "><div>home <span data-name="home" class="delete">remove</span></div>
<ul>
<li id="about-us" class="col-sm-12 col-lg-12" style="position: relative; left: 0px; top: 0px;"><div>about-us <span data-name="about-us" class="delete">remove</span></div>
<ul>
<li id="product" class="col-sm-12 col-lg-12" style="position: relative; left: 0px; top: 0px;"><div>product <span data-name="product" class="delete">remove</span></div> </li>
</ul>
</li>
</ul>
</li>
<li id="carrer" class="col-sm-12 col-lg-12 "><div>carrer <span data-name="carrer" class="delete">remove</span></div>
<ul>
<li id="product" class="col-sm-12 col-lg-12" style="position: relative; left: 0px; top: 0px;"><div>product <span data-name="product" class="delete">remove</span></div></li>
<li id="about-us" class="col-sm-12 col-lg-12" style="position: relative; left: 0px; top: 0px;"><div>about-us <span data-name="about-us" class="delete">remove</span></div>
<ul>
<li id="home" class="col-sm-12 col-lg-12" style="position: relative; left: 0px; top: 0px;"><div>home <span data-name="home" class="delete">remove</span></div></li>
</ul>
</li>
<li id="product" class="col-sm-12 col-lg-12" style="position: relative; left: 0px; top: 0px;"><div>product <span data-name="product" class="delete">remove</span></div> </li>
</ul>
</li>
<li id="carrer" class="col-sm-12 col-lg-12 "><div>carrer <span data-name="carrer" class="delete">remove</span></div></li>
<li id="about-us" class="col-sm-12 col-lg-12 "><div>about-us <span data-name="about-us" class="delete">remove</span></div>
<ul>
<li id="product" class="col-sm-12 col-lg-12" style="position: relative; left: 0px; top: 0px;"><div>product <span data-name="product" class="delete">remove</span></div> </li>
</ul>
</li>
我想要 Json 喜欢
{ “名称”:“家庭删除”, “孩子们”: [{ "name": "about-us remove", “孩子们”: [{ “名称”:“产品删除”, “孩子们”: [{}], }] }], "name": "carrer remove", “孩子们”: [{ “名称”:“产品删除”, “孩子们”: [{}], "name": "about-us remove", “孩子们”: [{ “名称”:“家庭删除”, “孩子们”: [{}], }], “名称”:“产品删除”, “孩子们”: [{}], }], "name": "carrer remove", “孩子们”: [{}], "name": "about-us remove", “孩子们”: [{ “名称”:“产品删除”, “孩子们”: [{}], }] }
我做了如下代码
function buildJSON($li) {
var subObj = { "name": $li.contents().eq(0).text().trim() };
$li.children('ul').children().each(function() {
if (!subObj.children) { subObj.children = []; }
subObj.children.push(buildJSON($(this)));
});
return subObj;
}
var obj = buildJSON($("#sortable").children());
$('#sortable').append('<pre>').find('pre').append(JSON.stringify(obj, null, 2));
输出不同的东西
{ “名称”:“家庭删除”, “孩子们”: [ { "name": "about-us remove", “孩子们”: [ { “名称”:“产品删除” } ] }, { “名称”:“产品删除” }, { "name": "about-us remove", “孩子们”: [ { “名称”:“家庭删除” } ] }, { “名称”:“产品删除” }, { “名称”:“产品删除” } ] }
缺少一些条目... 请帮助我在哪里错过了代码
提前致谢
【问题讨论】:
-
你输出的数据结构不好,这是你会得到的jsfiddle.net/Lg0wyt9u/1777
-
@NenadVracar 我已经更新了我的结构,请检查一次
标签: javascript jquery html json