gpt4 book ai didi

jQuery 迭代嵌套对象显示所有嵌套对象的键

转载 作者:行者123 更新时间:2023-12-01 04:01:14 25 4
gpt4 key购买 nike

我正在使用嵌套 $.each 函数迭代嵌套对象的 json 对象。问题是,当我使用内部 $.each 循环遍历嵌套对象时,它返回所有嵌套对象的键,而不仅仅是第一个嵌套对象。在第二次迭代中,它返回所有键减去第一个嵌套对象的键,依此类推。这是代码:

var data = {
'1': {
'a': '1a',
'b': '1b',
'c': '1c'
},
'2': {
'a': '2a',
'b': '2b',
'c': '2c'
},
'3': {
'a': '3a',
'b': '3b',
'c': '3c'
}
};

var my_ul = $('#mydiv ul');
$.each(data, function(key, value) {
$('<li>', {
html: key + '<ul></ul>'
}).appendTo(my_ul);
var deep_ul = $('#mydiv ul li ul');
$.each(value, function(k, v) {
$('<li>', {
html: k + ':' + v
}).appendTo(deep_ul);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="mydiv">
<ul></ul>
</div>
<div id="test"></div>

结果如下:http://jsfiddle.net/TsJP5/82/

我做错了什么。我希望它能给

 - 1  +a : a1
+b : b1
+c : c1
- 2 +a : a2
+b : b2
+c : c2

等等...

最佳答案

这一切都在您的 jQuery DOM 操作中。选择器#mydiv ul li ul正在拉动#mydiv中的每个后代ul节点。

相反,我发现最干净的方法是单独构建每个 li 和后代 ul 并将它们附加到父节点:

var data = {
'1':{
'a':'1a',
'b':'1b',
'c':'1c'
},
'2':{
'a':'2a',
'b':'2b',
'c':'2c'
},
'3':{
'a':'3a',
'b':'3b',
'c':'3c'
}
};

var my_ul = $('#mydiv ul');

$.each(data, function(key, value){
var li = $('<li>', {html:key});
var deep_ul = $('<ul></ul>');

$.each(value, function(k, v){
$('<li>', {html:k + ':' + v}).appendTo(deep_ul);
});

deep_ul.appendTo(li)
li.appendTo(my_ul);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div id="mydiv">
<ul>
</ul>
</div>

<div id="test">
</div>

关于jQuery 迭代嵌套对象显示所有嵌套对象的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43008698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com