javascript - 循环仅显示 1 个元素
问题描述
我正在尝试将对象的元素推送到表格中。所以我设置了一个循环来推送我的对象的每个元素。然而,循环只做 1 个循环。
我刚刚做了一个非常基本的循环,递增“i”直到它达到我的数据长度。
getLigneTab : function() {
var ligne; debugger
var nbData = ucManager.listData.length;
for (var i = 0; i < nbData; i++) {
ligne = '<tr>'
+ '<td>'+ucManager.listData[0].collaborateur+'</td>'
+ '<td>'+ucManager.listData[0].budget+'</td>'
+ '<td>'+ucManager.listData[0].consomme+'</td>'
+ '<td>'+ucManager.listData[0].raf+'</td>'
+ '<td>'+ucManager.listData[0].nbTicket+'</td>'
return ligne;
}
},
我通过点击一个名为“affiche-chiffre”的按钮进入这个函数:
$('#affichage-chiffre').on("click", function(event) {
var dateD = $('#debutExport').val();
var dateF = $('#finExport').val();
if (dateD == "" && dateD == "") {
bootbox.alert("Saisissez une période !");
}
ucManager.getData(dateD, dateF);
$('#table').html('');
$('#table').append(ucManager.getColonnes(dateD, dateF));
$('#table').append("<tbody></tbody>");
$('#table').find("tbody").append(ucManager.getLigneTab());
$('#table').show();
});
我应该得到至少 7 行,但我只得到对象的第一行。
解决方案
getLigneTab
您的功能有几个问题。
1) 将return
语句移到 for 循环之外。这就是导致它只执行1次的原因。
2)ucManager.listData[0]
将始终访问数组中的第一个元素。将其更改为ucManager.listData[i]
.
3)每次通过循环时都设置ligne
为一个新字符串,因此退出循环后它只会是一行。改为使用ligne +=
。
4)您缺少结束</tr>
标签。通过循环将其添加到每次迭代的字符串末尾。
您的函数现在应该如下所示:
getLigneTab : function() {
var ligne; debugger
var nbData = ucManager.listData.length;
for (var i = 0; i < nbData; i++) {
ligne += '<tr>'
+ '<td>'+ucManager.listData[i].collaborateur+'</td>'
+ '<td>'+ucManager.listData[i].budget+'</td>'
+ '<td>'+ucManager.listData[i].consomme+'</td>'
+ '<td>'+ucManager.listData[i].raf+'</td>'
+ '<td>'+ucManager.listData[i].nbTicket+'</td>'
+ '</tr>';
}
return ligne;
}
推荐阅读
- git - 在 git commit 之前使用 rsync 测试更改
- java - 仅使用 +、-、* 和 / 作为运算符计算实数的幂
- r - 在 .dta 文件上使用 read.dta13 时发生二进制读取错误
- google-sheets - Google Sheet - 如何检查值是否在不同的列中?
- django - 我想在我的 django 项目上配置 AWS S3,但我的许多客户的媒体文件已经在我的 pythonanywhere 服务器上
- flutter - 在颤振中实现 shared_preferences 的问题
- c++ - OpenCV ArUco标记,如何获得它们的中心?
- neo4j - 在 neo4j 中导入多个 csv 的有效方法
- mysql - npm install 不工作,找不到模块,似乎一切都试过了
- .net - SQL Server Management Studio 无法正确启动