Si vous pouvez obtenir les valeurs dans un tableau, vous ne devez pas utiliser jQuery pour les résumer. Vous pouvez utiliser les méthodes déjà présentes sur l'objet tableau pour effectuer le travail.
Les tableaux ont une méthode .reduce(). Documentation: https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/Reduce
Array.reduce accepte une fonction comme un argument qui agit comme un rappel de l'accumulateur. La fonction accumulateur accepte 4 arguments (previousValue, currentValue, index, array). Vous avez seulement besoin de 2 d'entre eux pour faire la somme. Ces 2 arguments sont previousValue et currentValue.
var sampleArray = [1, 2, 3, 4, 5];
var sum = sampleArray.reduce(function(previousValue, currentValue){
return currentValue + previousValue;
});
Si vous êtes confronté à un problème de compatibilité où l'environnement cible ne supporte pas ECMAScript 5 ou ajouts ci-dessus, utilisez la définition de prototype défini dans l'article lié MDN. (Ci-dessous)
if (!Array.prototype.reduce) {
Array.prototype.reduce = function reduce(accumulator){
if (this===null || this===undefined) throw new TypeError("Object is null or undefined");
var i = 0, l = this.length >> 0, curr;
if(typeof accumulator !== "function") // ES5 : "If IsCallable(callbackfn) is false, throw a TypeError exception."
throw new TypeError("First argument is not callable");
if(arguments.length < 2) {
if (l === 0) throw new TypeError("Array length is 0 and no second argument");
curr = this[0];
i = 1; // start accumulating at the second element
}
else
curr = arguments[1];
while (i < l) {
if(i in this) curr = accumulator.call(undefined, curr, this[i], i, this);
++i;
}
return curr;
};
}
Les ID doivent être ** uniques **! (et oui, vous pouvez) –
Utilisez les attributs 'class' à la place des attributs' id'. (Vous ne pouvez pas avoir plus qu'un seul élément avec le même ID sur la page.) –
ok si je rends les ID uniques alors comment puis-je faire plus loin? S'il vous plaît rappelez-vous que le prix unitaire est dynamique comme je clique sur Ajouter une nouvelle ligne et cela crée un autre prix unitaire. J'ai donc besoin de leur somme. – Faizan