我正在使用 $.each 迭代对象集合,并将每个对象的预定义属性附加到页面。这工作得很好。
$(myObjects).each(function(i) {
var element = $("<tr>").appendTo(tableBody);
$("<td>").append(this.unitCount).appendTo(element);
});
我附加的值是一个数字。我想在累加器中跟踪这些值并返回总数以在其他地方使用。像这样:
var total = 0;
$(myObjects).each(function(i) {
var element = $("<tr>").appendTo(tableBody);
$("<td>").append(this.unitCount).appendTo(element);
var total = total + this.unitCount;
});
问题是,由于 $(myObjects) 是对象的集合,因此累加器变量 Total 在循环内无法识别。 (当我在循环启动后立即调用 console.log(total) 时,内部的值被识别)。我想使用一个循环将值附加到页面并跟踪总数。这可能吗?
最佳答案
在each或for循环中创建元素非常慢,而是构建HTML字符串表示形式。完成数据循环后添加它:
<强> jsBin demo
var TR = "";
var total = 0;
$.each(myObjects, function() {
var uc = this.unitCount;
TR += "<tr><td>"+ uc +"</td></tr>";
total += uc;
});
tableBody.append(TR).append("<tr><td>TOTAL: "+ total +"</td></td>");
关于javascript - 使用累加器迭代 jquery 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24749619/