Jquery用动态ID计算总和

时间:2016-03-04 12:18:26

标签: javascript jquery google-maps

我有一个谷歌地图,当用户添加标记时,它会计算该标记与上一个标记之间的距离。我通过jQuery将距离添加到表中。距离很好。我希望有一个“累积距离列,它可以将距离增加到该点。所以它看起来像这样:

enter image description here

我正在为每行的跨度动态分配ID。我不知道如何创建累积距离列。这是我到目前为止所做的:

 var currentIndex=0;
 var distancenm = Math.round((((google.maps.geometry.spherical.computeDistanceBetween(FromLocation, ToLocation))/1000)) * 0.539957);
 var accdistance = $("#distance_0").val();
 var accdistance2 = $("#distance_1").val();
 var accdistancetotal = (accdistance+accdistance2);

 $('#table').append('<tr id="table_row_'+(currentIndex-1)+'">'+
    '<td><span id="distance_'+(currentIndex-1)+'" name="distance_[]" class="distance">'+distancenm+' </span></td>'+
    '<td><span id="accdistance_'+(currentIndex-1)+'" name="accdistance_[]" class="accumulateddistance">'+accdistancetotal+' </span></td>'+
    '</td>'

我也不知道如何选择ID而不直接引用它:

$("#distance_0").val();

因为我不知道用户将添加多少分。因此,我需要以每行的累积距离列只是当前行的距离列+前一行的距离列的总和。

编辑:在Mario的建议之后看起来像这样:

enter image description here

1 个答案:

答案 0 :(得分:1)

要总结所有当前距离,您需要这样做:

var accDistance = 0;
$('.distance').each(function() {
  accDistance += parseInt($(this).text());
});
accDistance += distancenm;

我认为它会起作用,因为在您的示例中,您在val()标记中使用<span>,这是不正确的。