【发布时间】:2020-01-05 11:46:01
【问题描述】:
我坚持连接字符串以在数组循环内将其打印为html。它只打印类group 的div 内的第一个anchor 标签。我应该修改什么来打印group div 内的锚点?示例如下:
var data = [{
"id": 1969,
"first_release_date": 1083542400,
"name": "Item 1"
},
{
"id": 25076,
"first_release_date": 1083542400,
"name": "Item 2"
},
{
"id": 25076,
"first_release_date": 1540512000,
"name": "Item 3"
},
{
"id": 25076,
"first_release_date": 1540512000,
"name": "Item 4"
},
{
"id": 25076,
"first_release_date": 1540512000,
"name": "Item 5"
},
{
"id": 25076,
"first_release_date": 1540512000,
"name": "Item 6"
},
{
"id": 9245,
"first_release_date": 1292976000,
"name": "Item 7"
},
{
"id": 9245,
"first_release_date": 1292976000,
"name": "Item 8"
},
{
"id": 9245,
"first_release_date": 1566950400,
"name": "Item 9"
}
];
var tag = "",
release = "",
releaseChecker = 0;
Object.keys(data).forEach(function(key) {
if (data[key].first_release_date != releaseChecker) {
release = new Date(data[key].first_release_date * 1000);
tag += '<h4>' + release.getDate() + '</h4>';
}
if (data[key].first_release_date != releaseChecker) {
tag += '<div class="group">';
}
tag += '<a class="test" href="#">'+data[key].name+'</a>, ';
if (data[key].first_release_date != releaseChecker) {
tag += '</div>';
}
releaseChecker = data[key].first_release_date;
});
$(".el").html(tag);
.group {
border: 1px solid black;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="el"></div>
【问题讨论】:
-
您需要另一个内部循环来创建
a元素。但是,我看不出这段代码如何匹配你说你得到的输出,因为它每次迭代只产生一个a包裹在div中。 -
还应提供数据样本,以便我们重现问题。单击问题编辑器中的
<>使其成为可运行的sn-p -
另外,如果你真的想在输出中换行和缩进,你需要像
'...</h4>\n'和tag += ' <a...'这样的改变。 -
@charlietfl 我已经用 sn-p 示例更新了代码。
标签: javascript jquery arrays loops