javascript - 使用累加器迭代 jquery 对象?

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

最佳答案

在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/

相关文章:

javascript - 带有数据数组的堆叠图

jquery - 没有嵌套的 DataTables 详细信息行

jquery - 脑放 : How to make overflow content in a div

javascript - ios - 将文本注入(inject) UIWebView 文本字段

c# - Visual Studio 2012 无法运行在 VS 之外正常工作的 .JS 文件?

javascript - jQuery:完成动画不起作用后执行

javascript - jQuery 的 css 方法中的 -= 运算符在 IE8 中不起作用

javascript - 如何在jQuery中阻止父元素的点击事件?

jquery - 列表自动分隔符

javascript - Google 地方信息自动完成 - 修改结果