如何遍历jason数据并将其显示在数据列表标记(dl)中

我试图循环一些JSON数据(var mydata),mydata是两个元素的数组,数组中的第二个元素

mydata[1]是一个多维数组,我需要在dt中显示第一个元素,即mydata[0] ,并在dd中显示mydata [1]中的元素。

我尝试了所有选项,但我真的被卡住了,我需要任何帮助。 以下是我的代码:

 var mydata = [ [{ "id": "67", "name": "Baby & Toddler Clothing " }, { "id": "68", "name": "Kids' Clothing, Shoes & Accessories" }, { "id": "69", "name": "Costumes, Reenactment Theater" }], [ [{ "id": "572", "name": "Baby Clothing Accessories " }, { "id": "573", "name": "Baby Shoes" }], [{ "id": "579", "name": "Boys Clothing [Sizes 4 & Up] " }, { "id": "580", "name": "Boys Shoes" }], [{ "id": "588", "name": "Costumes" }, { "id": "589", "name": "Reenactment & Theater " }] ] ] function getCategories(id){ $.ajax({ url: '{$getcatUrl}', type: 'POST', data: {category_id: id}, success: function (data) { data = jQuery.parseJSON(data); //console.log(data); return; if(data.length > 0){ firstdata = data[0]; secdata = data[1]; for(var i = 0; i < firstdata.length; i++) { level_1 = firstdata[i].name; level_1_id = firstdata[i].id; for(var j = 0; j< secdata.length; j++){ if(secdata[i][j] !== undefined){ level_2=''; level_2 = secdata[i][j].name; level_2_id = secdata[i][j].d; } console.log(level_2); } var dldata = $( '
'+ "
" + level_1 + "
"+ "
" + level_2 + "
"+ '
' ); } }else{ console.log('no item for this categories'); } }, error: function(jqXHR, errMsg) { // handle error console.log(errMsg); } }); }

var level_1和level_1_id工作正常,但我不断收到变量level_2的错误,错误说不能读取未定义的属性’name’,这个问题的任何解决方案都会受到赞赏,并且我也对这个问题的新想法持开放态度,

基本上问题是每次for循环运行时都会覆盖level_1level_2变量。 因此,当您到达生成HTML的代码时,它们已被多次覆盖,只剩下最后一个版本,并且您只能在任何情况下打印一次。

这将解决它 – 在这种情况下,通过直接在每个循环中生成HTML元素,虽然你当然可以通过附加到变量然后在最后输出所有内容来实现,如果这是你的偏好。

 var data = [ [{ "id": "67", "name": "Baby & Toddler Clothing " }, { "id": "68", "name": "Kids' Clothing, Shoes & Accessories" }, { "id": "69", "name": "Costumes, Reenactment Theater" }], [ [{ "id": "572", "name": "Baby Clothing Accessories " }, { "id": "573", "name": "Baby Shoes" }], [{ "id": "579", "name": "Boys Clothing [Sizes 4 & Up] " }, { "id": "580", "name": "Boys Shoes" }], [{ "id": "588", "name": "Costumes" }, { "id": "589", "name": "Reenactment & Theater " }] ] ] if (data.length > 0) { var content = $("#content"); firstdata = data[0]; secdata = data[1]; for (var i = 0; i < firstdata.length; i++) { var dl = $("#content").append("
"); dl.append("
" + firstdata[i].name + ""); for (var j = 0; j < secdata.length; j++) { if (secdata[i][j] !== undefined) { dl.append("
" + secdata[i][j].name + "
"); } } } content.append(dl); } else { console.log('no item for this categories'); }