2017-06-08 2 views
0

J'ai extrait la valeur du titre comme vous pouvez le voir. Mais j'ai un problème avec l'addition. Fondamentalement, je ne sais pas comment ajouter chaque élément .work-day-graph dans .ct-chart. Donc ce sera comme 1,25 + 8,25 + 0,75 + 0,5 = XY et 2,25 + 7,25 + 2,75 + 0,5 = XY. Des idées ? Merci beaucoupAjout de la valeur d'extraction de la chaîne

DEMO: https://jsfiddle.net/1xn1eLfs/6/

JS:

$('.ct-chart').each(function() { 
var graphTitle; 

$(this).find('.work-day-graph').each(function() { 
    graphTitle = $(this).attr('title'); 
    var graphTime = graphTitle.substring(graphTitle.lastIndexOf('(') + 1, graphTitle.lastIndexOf('h')); 
    //graphTimeVal = graphTime.parseInt(); 

    $('<span class=output-val>' + graphTime + '</br>' + '</span>').appendTo('.output'); 
}); 
}); 

Répondre

1

est ici une version modifiée jsFiddle: https://jsfiddle.net/3woe2cdq/4/

Si vous souhaitez afficher la somme des deux cartes, vous avez besoin d'une sortie séparée à l'intérieur les deux pour le faire fonctionner.

$('.ct-chart').each(function() { 
    var graphTitle; 

    // Save the sum of the hours 
    var graphTimeSum = 0; 

    $(this).find('.work-day-graph').each(function() { 
    graphTitle = $(this).attr('title'); 

    var graphTime = graphTitle 
     .substring(graphTitle 
     .lastIndexOf('(') + 1, graphTitle 
     .lastIndexOf('h') 
    ).replace(',', '.'); 

    // Add the current hours to the sum 
    graphTimeSum += parseFloat(graphTime); 
    }); 

    // Here we select the output class inside the chart 
    $('<span class=output-val>' + graphTimeSum + '</br>' + '</span>').appendTo($(this).find('.output')); 

}); 
0

D'abord, soyez prudent parce que vous utilisez "" et non "" dans ta chaîne. Pour ajouter ce nombre, vous devez parseFloat sur eux.

Démo: https://jsfiddle.net/1xn1eLfs/6/

var val = 0; 
$('.ct-chart').each(function() { 
    var graphTitle; 

    $(this).find('.work-day-graph').each(function() { 
     graphTitle = $(this).attr('title'); 
     var graphTime = graphTitle.substring(graphTitle.lastIndexOf('(') + 1, graphTitle.lastIndexOf('h')); 
     graphTime = graphTime.replace(',', '.'); 
     val += parseFloat(graphTime); 

     $('<span class=output-val>' + graphTime + '</br>' + '</span>').appendTo('.output'); 
    }); 
}); 
console.log(val); // 23.5 

Faites la même chose mais en changeant la deuxième classe ct-tableau par ct-chart2 ou autre, de sorte que vous pouvez ajouter indépendamment élément.