Как отобразить несколько массивов из API (JSON), используя jQuery? Текущий метод Я использую функцию each
, к сожалению, результат не так, как ожидалось. Результат должен совпадать с JSON, который наследуется.
Текущий результат: Отображается отдельно
Ожидаемый результат: Для отображения, как показано ниже, div 3 внутри div 2 и div 2 внутри div 1.
HTML
<div class="container-fluid" id="projectDetail">
<div class="row mt-3 view_result">
// all the result will be display here
</div>
</div>
JS
$(document).ready(function(){
var project = '';
var L1 = '';
var L2 = '';
var L3 = '';
$.ajax({
url : url_project_detail,
type : 'POST',
dataType : 'json',
data: "data",
success: function(response){
if (response.status == "Success"){
// Layer Project Name
$.each(response.data, function(key, value){
project = "<div class='text-danger card container'><span>"+value.project_name+" - </span>"
$("#projectDetail .view_result").append(project);
// Layer MVP
$.each(value.l1_task, function(key, value){
L1 = "<div class='card bg-info pd-10 container'><span>"+value.l1_name+" Layer MVP - </span>"
$("#projectDetail .view_result").append(L1);
// Layer Sprint
$.each(value.l2_task, function(key, value){
L2 = "<div class='card bg-warning pd-20 container'><span>"+value.l2_name+" Layer Sprint - </span>"
$("#projectDetail .view_result").append(L2);
// Layer Task
$.each(value.l3_task, function(key, value){
L3 = "<div class='card bg-dark container'><span>"+value.l3_name+" Layer Task - </span>"+
"</div>" // for Layer Task
$("#projectDetail .view_result").append(L3);
});
var close = "</div>" // for Layer Sprint
$("#projectDetail .view_result").append(close);
});
var close = "</div>" // for Layer MVP
$("#projectDetail .view_result").append(close);
});
var close = "</div>" // Layer Project Name
$("#projectDetail .view_result").append(close);
});
}
else {
// else
}
},
error: function(e){
// error
}
});
});
JSON
{
"status": "Success",
"data": [
{
"project_id": "1",
"project_name": " Project Name ",
"l1_task": [
{
"l1_id": "1",
"l1_name": " MVP 1 ",
"l2_task": [
{
"l2_id": "1",
"l2_name": " Sprint 1 ",
"l3_task": [
{
"l3_id": "1",
"l3_name": " Sprint 1 Task 1"
},
{
"l3_id": "1",
"l3_name": " Sprint 1 Task 2 "
}
]
}
]
},
{
"l1_id": "1",
"l1_name": " MVP 2 ",
"l2_task": [
{
"l2_id": "1",
"l2_name": " Sprint 1 ",
"l3_task": [
{
"l3_id": "1",
"l3_name": " Sprint 1 Task 1"
},
{
"l3_id": "1",
"l3_name": " Sprint 1 Task 2 "
}
]
}
]
}
]
}
]
}