使用累加器迭代jquery对象?

时间:2014-07-15 03:57:02

标签: javascript jquery

我使用$ .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)时,内部的值被识别)。我想使用一个循环将值附加到页面以及跟踪总计。这可能吗?

1 个答案:

答案 0 :(得分:0)

在每个或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>");