[英]The JSON that defines my nav has header types and category types that I'd like to convert to nested UL LI elements in Javascript
我的 JSON 是这样的:
{
"categoryDisplaySubTypeId": "5",
"catName": "header"
},
{
"categoryDisplaySubTypeId": "10",
"catName": "category"
},
{
"categoryDisplaySubTypeId": "10",
"catName": "category"
},
{
"categoryDisplaySubTypeId": "10",
"catName": "category"
},
{
"categoryDisplaySubTypeId": "5",
"catName": "header"
},
{
"categoryDisplaySubTypeId": "10",
"catName": "category"
},
{
"categoryDisplaySubTypeId": "10",
"catName": "category"
}
我想构建一个嵌套的 UL LI 系统来呈现如下所示的 HTML:
我尝试了各种嵌套循环,但似乎无法解决。
<!-- category nav -->
<div id="sideNav">
<ul class="sideUl">
</ul>
</div>
<!-- end category nav -->
$.each(object(i, value){
if( value.categoryDisplaySubTypeId == "5" ) {
$('.sideUl').append("<li>"+object.catName+"</li>);
}
if( value.categoryDisplaySubTypeId == "10" ) {
$('.sideUl').append("<ul>");
$('.sideUl').append("<li>"+object.catName+"</li>);
}
}
});
首先,JSON 应该是一个数组,如下所示:
var obj = [{
"categoryDisplaySubTypeId": "5",
"catName": "header"
},
{
"categoryDisplaySubTypeId": "10",
"catName": "category"
},
{
"categoryDisplaySubTypeId": "10",
"catName": "category"
},
{
"categoryDisplaySubTypeId": "10",
"catName": "category"
},
{
"categoryDisplaySubTypeId": "5",
"catName": "header"
},
{
"categoryDisplaySubTypeId": "10",
"catName": "category"
},
{
"categoryDisplaySubTypeId": "10",
"catName": "category"
}];
然后使用 for each 循环遍历数组,如下所示:
obj.forEach( function (arrayItem)
{
if( arrayItem.categoryDisplaySubTypeId == "5" ) {
$('.sideUl').append("<li>"+arrayItem.catName+"</li>");
}
if( arrayItem.categoryDisplaySubTypeId == "10" ) {
$('.sideUl').append("<ul><li>"+arrayItem.catName+"</li></ul>");
}
});
您的代码中的问题是:
<ul>
标签。<ul>
和<li>
附加不正确。请参阅此处的工作小提琴:“ https://jsfiddle.net/6zsf2hbs/3/ ”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.