我有一个JSON数组,如下所示:
var teamDetails=[
{ "pType" : "Search Engines", "count" : 5},
{ "pType" : "Content Server", "count" : 1},
{ "pType" : "Search Engines", "count" : 1},
{ "pType" : "Business", "count" : 1,},
{ "pType" : "Internet Services", "count" : 1},
];
我想创建包含JSON数据的动态ul&li标签
我希望将数据放置如下:
<ul class="list-unstyled">
<li>
***Here the json ptype value***
<span class="pull-right">
<strong>
<h5>***here json count value***</h5>
</strong>
</span>
</li>
</ul>
如何动态获取每个数据的输出..
我用这段代码尝试了一下,但不知道如何添加文本li和span标签?
var clist=$('ul.list-unstyled')
dataProjectCount.forEach(function(a){
a.count=a.count+" Projects";
console.log(a.count);
var li=$('<li/>').appendTo(clist);
var aa=$('<span/>').addClass('pull-right').appendTo(clist);
});
答案 0 :(得分:2)
创建映射您的输入teamDetails
数组项的li元素,然后将它们附加到ul容器中
const teamDetails=[
{ "pType" : "Search Engines", "count" : 5},
{ "pType" : "Content Server", "count" : 1},
{ "pType" : "Search Engines", "count" : 1},
{ "pType" : "Business", "count" : 1,},
{ "pType" : "Internet Services", "count" : 1},
];
const liElements = teamDetails.map(el => $(`<li>${el.pType}<span class="pull-right><strong><h5>${el.count}</h5></strong></span></li>`));
$('.list-unstyled').append(liElements);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul class="list-unstyled">
</ul>
答案 1 :(得分:0)
首先使用<ul class="list-unstyled"></ul>
将.html()
添加到DOM。
在外部数组上使用.map()
在数组中的每个对象上使用Object.values()
在每个对象的值上使用.map()
在交替迭代中使用了HTML字符串的一部分
将值插值到每个片段中之后,结果是一个字符串数组
使用.join()
.append()
到空白列表的字符串
var teamDetails = [{pType:"Search Engines",count:5},{pType: "Content Server",count: 1},{pType:"Business",count: 1},{pType: "Internet Services",count: 1}];
$('body').html(`<ul class="list-unstyled"></ul>`);
var result = teamDetails.map(function(item) {
var obj = Object.values(item).map(function(val, idx) {
if (idx % 2 === 0 || idx === 0) {
var str = `<li><b class='tD A'>${val} </b>`;
} else {
var str = `<b class='tD B'>${val}</b></li>`;
}
return str;
});
return obj;
});
var string = result.join(' ').replace(/,/g, '');
$('.list-unstyled').append(string);
.tD {
display: inline-block;
font: 16px/1.2 Verdana;
}
.A {
width: 15ch
}
.B {
font: 700 20px/1 Consolas;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>