#javascript
#javascript
Вопрос:
Мне нужно динамически создавать загрузочные колодцы, которые содержат конкретную информацию о каком-либо поднятом билете, например, номер билета, статус билета и т.д. Все эти детали должны динамически заполняться из ответа. Я могу использовать только JavaScript. Как реализовать то же самое в обычном JavaScript?
Я успешно создал загрузочные колодцы, но как динамически заполнять данные в каждом поле с помощью JavaScript?
<body>
<div id="table"></div>
<script>
var ticketDetails = [
{status:"pending", App_name:"demo1", req_id:1234, Appr: "no", tct_no: "AB1234"},
{status:"approved", App_name:"demo2", req_id:654, Appr: "yes", tct_no: "AB8769"},
{status:"dispatched", App_name:"demo3", req_id:34, Appr: "yes", tct_no: "AB1241"}
];
var a = '<div class="container">';
a = '<div class="well" style="color:#fff; background-color:pink;"><div class="row">';
a = '<div class="col-xs-6">REQUEST#</div>';
a = '<div class="col-xs-6" style="text-align:right;">STATUS</div>';
a = '</div>';
a = '<div>';
a = '<div class="row">';
a = '<div class="col-xs-4">Approval</div>';
a = '<div class="col-xs-4">Approver Name</div>';
a = '<div class="col-xs-4">Ticket Number</div>';
a = '</div>' '</div>' '</div>';
for (var i=0; i<3; i ) {
document.getElementById("table").innerHTML = a;
}
</script>
</body>
Ответ №1:
Прежде всего. Я настоятельно рекомендую вам использовать map для этого, а не для цикла:
const html = ticketDetails.map( item =>{
return `<div class="container">
<div class="well" style="color:#fff; background-color:pink;">
<div class="row">
<div class="col-xs-6">REQUEST#</div>
<div class="col-xs-6" style="text-align:right;">STATUS</div>
</div>
<div class="row">
<div class="col-xs-4">${item['status']}</div>
<div class="col-xs-4">${item['App_name']}</div>
<div class="col-xs-4">${item['tct_no']}</div>
</div>
</div>
</div>` ;
});
document.getElementById("table").innerHTML = html.join('');
[].map создайте новый массив, в этом случае массив строк.И [].Join(«) объединяют массив обратно в одну строку.