我试着每两个循环将一组图像包装成div。使每两个引导列都在单独的行中。例如
<div class="row">
<div class="col-6"><img src=".."></div>
<div class="col-6"><img src=".."></div>
</div>
正如您在下面的示例中看到的,它在使用文本时似乎起作用。
var data = ["https://via.placeholder.com/100",
"https://via.placeholder.com/100",
"https://via.placeholder.com/100",
"https://via.placeholder.com/100"
];
var output = $('.container');
var i = 0;
$.each(data, function(index, value) {
var template = '<div class="col-6"><img src=' + value + '></div>';
if (i % 2 == 0) {
output.append('<p>ROW START</p.')
}
output.append(template)
i++;
if (i % 2 == 0) {
output.append('<p>ROW END</p>')
}
})
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="container"></div>
但是,当我使用实际div时,它们会自动关闭,从而产生如下结构:
<div class="container">
<div class="row"></div>
<div class="col-6"><img src="https://via.placeholder.com/100"></div>
<div class="col-6"><img src="https://via.placeholder.com/100"></div>
<div class="row"></div>
<div class="col-6"><img src="https://via.placeholder.com/100"></div>
<div class="col-6"><img src="https://via.placeholder.com/100"></div>
</div>
示例代码段:
var data = ["https://via.placeholder.com/100",
"https://via.placeholder.com/100",
"https://via.placeholder.com/100",
"https://via.placeholder.com/100"
];
var output = $('.container');
var i = 0;
$.each(data, function(index, value) {
var template = '<div class="col-6"><img src=' + value + '></div>';
if (i % 2 == 0) {
output.append('<div class="row">')
}
output.append(template)
i++;
if (i % 2 == 0) {
output.append('</div>')
}
})
.row {
min-height:1px;
background:blue;
}
.col-6 {
background:red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet" />
<div class="container"></div>
为什么div标签会自动关闭,我该如何修复?
最佳答案
$.each(data, function(index, value) {
var template = '<div class="col-6"><img src=' + value + '/></div>';
if (i % 2 == 0) {
output.append('<div class="row"></div>')
}
$(".row").last().append(template)
i++;
})
只需将模板附加到最后添加的行。
https://jsfiddle.net/zL5phyfq/