我为Loop构建了以下内容,并想询问是否有办法简化它:
//data contains an array
var i = 0;
if(data.length >= 1) {
i = 1;
}
for (i; i <= data.length; i++) {
$('#img-thumb-id' + i).attr('src', data[i-1]);
}
答案 0 :(得分:4)
我看到这里使用了jQuery,因此您可以使用$.each
$.each(data, function(i, item){
var iteration = +i+1;
$('#img-thumb-id' + iteration).attr('src', item);
});
如果你想使用vanilla JavaScript(根本没有jQuery)
for (var i; i < data.length; i++) {
var iteration = +i+1;
document.getElementById('img-thumb-id'+iteration).src = data[i];
}
或者您可以使用:
for (var i in data) {
document.getElementById('img-thumb-id'+(+i+1)).src = data[i];
}
答案 1 :(得分:2)
if(typeof data!=="undefined" && data && data.length>0) {
for (var i=0; i < data.length; i++) {
$('#img-thumb-id' + (i+1)).attr('src', data[i]);
}
}
答案 2 :(得分:1)
循环很好,但我不知道你为什么不这样做:
if(data !== null){
for (var i = 0; i < data.length; i++) {
$('#img-thumb-id' + (i + 1)).attr('src', data[i]);
}
}
您不需要在问题中执行第一段代码。如果您只是从0开始执行标准for循环并且上升到object.length,那么读取代码的人就会更清楚。
答案 3 :(得分:1)
你也可以试试这个:
data.forEach(function(item, index){
$('#img-thumb-id' + (index+1)).attr('src', item);
});
答案 4 :(得分:-1)
在JavaScript中使用简单的foreach循环
queryParams['colour']