【发布时间】:2017-11-08 13:32:17
【问题描述】:
我想根据对象option 中包含的值附加一个<ul> 元素。我希望在顶层<ul> 下添加<li> 元素,然后如果该对象包含另一个值,则添加一个子<ul>,其中包含更多<li> 元素等等...
我已经整理出第一级,为每个第一级选项创建一个 <li>,但是添加另一个 .each() 函数会在之前创建一个随机的 [object Object],并且子选项不会按需要排序。
我的示例代码如下所示。
<ul id="menu">
</ul>
<script>
var option = {
'option 1' : {
'option 1 sub option 1' : {},
'option 1 sub option 2' : {},
'option 1 sub option 3' : {}
},
'option 2' : {
'option 2 sub option 1' : {},
'option 2 sub option 2' : {}
},
'option 3' : {
'option 3 sub option 1' : {},
'option 3 sub option 2' : {}
}
}
var menu = $('#menu'); // target menu container
$.each(option, function(key, value) {
$(menu).append('<li data-option="' + key + '">' + key +
(value === 'undefined' ? '' : '<ul class="menu2">'
+
// Add more <li> elements for each sub option contained under each option
$.each(value, function(key, value) {
$('.menu2').append(key);
})
+ '</ul>') +
'</li>');
});
</script>
【问题讨论】:
-
您的 if/else 条件在哪里...如果您正在检查值?
标签: javascript jquery json object