Javascript 在每个函数上创建一个对象数组
最终我希望得到一个像这样显示的对象:Javascript 在每个函数上创建一个对象数组,javascript,jquery,object,Javascript,Jquery,Object,最终我希望得到一个像这样显示的对象: '0': { '0': { label: 'Book:', content: 'a book name', }, '1': { label: 'Video:', content: 'a video name', }, '2': {
'0': {
'0': {
label: 'Book:',
content: 'a book name',
},
'1': {
label: 'Video:',
content: 'a video name',
},
'2': {
label: 'Audio:',
content: 'an audio name',
},
},
'1': {
'0': {
label: 'Book:',
content: 'another book name',
},
'1': {
label: 'Video:',
content: 'another video name',
},
'2': {
label: 'Audio:',
content: 'another audio name',
},
}
我在中的代码不正确,我很困惑为什么objDL没有定义?您不应该分别迭代
.container
s、dt
s和dd
s-您忘记了objDT/dd来自哪个容器。对结果也使用数组而不是对象
var objDL = [];
$("dl").each(function(i) {
objDL[i] = [];
$(this).children("dt").each(function(j) {
var $this = $(this);
objDL[i][j] = {
title: $this.text(),
description: $this.next("dd").text();
};
});
});
它未定义,因为
objDT.label
未定义。您需要指定一个键来选择要从中提取标签的正确对象。另外,下一行的objDD也有相同的问题-看起来您缺少一个下标objDD[i]。i只循环两次,其中有三组dt/dd。我需要找出如何在objDL循环中维护m&n的索引值,这可能是循环闭包问题吗?对,您想按它们的。容器,对它们进行分组,我错过了。然而,这将是非常复杂的,因为objDT
和objDD
没有区分这一点。请看我关于如何在没有这些的情况下做到这一点的片段,它就像一个符咒!谢谢你的帮助!objDL[i][j]是一个多维数组吗?@user1824996:是的,它是一个对象数组的数组-正是您用普通对象描述的结构。