2012-05-17 19 views
6

Hier ist mein Skript:Javascript Inkrement um mehr als 1?

//event handler for item quantity in shopping cart 
    function itemQuantityHandler(p, a) { 
     //get current quantity from cart 
     var filter = /(\w+)::(\w+)/.exec(p.id); 
     var cart_item = cart[filter[1]][filter[2]]; 
     var v = cart_item.quantity; 


     //add one 
     if (a.indexOf('add') != -1) { 
      if(v < settings.productBuyLimit) v++; 
     } 
     //substract one 
     if (a.indexOf('subtract') != -1) { 
      if (v > 1) v--; 

     } 
     //update quantity in shopping cart 
     $(p).find('.item-quantity').text(v); 
     //save new quantity to cart 
     cart_item.quantity = v; 
     //update price for item 
     $(p).find('.item-price').text((cart_item.price*v).toFixed(settings.numberPrecision)); 
     //update total counters 
     countCartTotal(); 
    } 

Was ich brauche, ist "v" zu erhöhen (cart_item.quantity) um mehr als eine. Hier wird "v ++" verwendet, aber es wird nur um 1 erhöht. Wie kann ich dies ändern, um es jedes Mal um 4 zu erhöhen, wenn ich auf das Plus-Symbol klicke?

Ich versuchte

v++ +4 

Aber es funktioniert nicht.

Vielen Dank!

+1

'v + = 4' ...? Und etwas Padding ... –

+4

Wenn Sie nicht wissen, wie man 4 zu einer Zahl hinzufügt, würde ich wirklich vorschlagen, ein grundlegendes Programmier-Tutorial zu durchlaufen. –

Antwort

15

Verwenden Sie einen Compound-Zuweisungsoperator:

v += 4; 
+0

Danke! es funktionierte. – larin555

+1

Nicht gleichwertig: 'v + = 4' wertet den Ausdruck nur einmal aus, was gut ist, wenn es sich um einen langen Ausdruck handelt oder Nebenwirkungen auftreten. – jnylen

+0

@jnylen Danke, Ofc du hast Recht. – helpermethod

0

Try this:

//event handler for item quantity in shopping cart 
    function itemQuantityHandler(p, a) { 
     //get current quantity from cart 
     var filter = /(\w+)::(\w+)/.exec(p.id); 
     var cart_item = cart[filter[1]][filter[2]]; 
     var v = cart_item.quantity; 


     //add four 
     if (a.indexOf('add') != -1) { 
      if(v < settings.productBuyLimit) v += 4; 
     } 
     //substract one 
     if (a.indexOf('subtract') != -1) { 
      if (v > 1) v--; 

     } 
     //update quantity in shopping cart 
     $(p).find('.item-quantity').text(v); 
     //save new quantity to cart 
     cart_item.quantity = v; 
     //update price for item 
     $(p).find('.item-price').text((cart_item.price*v).toFixed(settings.numberPrecision)); 
     //update total counters 
     countCartTotal(); 
    } 
3

v Zur Erhöhung von n: v + = n

14

Verwenden variable += value; um mehr zu erhöhen, als ein:

v += 4; 

Es arbeitet mit einem anderen Operatoren auch:

v -= 4; 
v *= 4; 
v /= 4; 
v %= 4; 
v <<= 1; 
v >>= 4; 
+0

Als Referenz: Siehe [Additionszuweisung] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Assignment_Operators#Addition_assignment) ('+ =') und [Subtraction Assignment] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Assignment_Operators#Subtraction_assignment) ('- =') Operatoren. – showdev

+0

|| = und && = scheint in JavaScript nicht zu existieren. | = und & = führen bitweise Zuweisungsoperatoren aus, die genauso gut sind, wenn Sie keine direkten === Vergleiche mit tatsächlichen booleschen Werten durchführen. –

+0

Du hast Recht @Csit - Ich muss in einer anderen Sprache gedacht haben, als ich dies schrieb. – jnylen

Verwandte Themen