je tente de faire des calculs pour un « total en cours d'exécution », voici mon code:L'utilisation d'un nom de classe dans .closest() de jQuery
$('.quantity_input').live('change',function(){
var ValOne = parseFloat($(this).val());
var ValTwo = parseFloat($(".price").text())
var totalTotal = ((ValOne) * (ValTwo));
$('.cost_of_items').closest('.cost_of_items').text(totalTotal.toFixed(2));
calcTotal();
});
.quantity_input est une entrée, .prix est le prix du produit, .cost_of_items est où je veux mettre à jour le coût total de l'article, à savoir. item1 = £ 5 x 3 quantity = £ 15 total pour item1 calcTotal() est une fonction qui met juste à jour le coût total de la commande. Le problème est de garder tous les maths dans une rangée de la table, ie je fais le calc dans le code ci-dessus et il ne colle pas à sa rangée, il met à jour tous les champs avec la classe .cost_of_items etc ...
le problème avec mon code HTML est montrant que sa dynamique ajoutée par .appends jQuery() mais voici la jQuery pertinente:
$('#items').append('<tr class="tableRow"><td><a class="removeItem" href="#"><img src="/admin/images/delete.png"></img></a><td class="om_part_no">' + omPartNo + '</td><td>' + supPartNo + '</td><td>' + cat + '</td><td class="description">' + desc + '</td><td>' + manuf + '</td><td>' + list + '</td><td>' + disc + '</td><td><p class="add_edit">Add/Edit</p><input type="text" class="quantity_input" name="quantity_input" /></td><td class="price_each_nett price">' + priceEach + '</td><td class="cost_of_items"></td><td><p class="add_edit">Add/Edit</p><input type="text" class="project_ref_input" name="project_ref_input" /><p class="project_ref"></p></td></tr>');
EDIT:
solution de travail:
$('.quantity_input').live('change',function(){
var ValOne = parseFloat($(this).val());
var ValTwo = parseFloat($(this).closest('tr').find('.price').text())
var totalTotal = ((ValOne) * (ValTwo));
$(this).closest('tr').find('.cost_of_items').text(totalTotal.toFixed(2));
calcTotal();
});
La ligne ici qui ressemble mal est '$ (». Cost_of_items ') le plus proche (.. cost_of_items ') '. Pourriez-vous nous montrer votre code HTML? – lonesomeday
Toutes les parenthèses dans ((ValOne) * (ValTwo)) ne font absolument rien. –
@user - Il vous manque une balise fermante '' dans '.append()'. – user113716