Try this in a simple way using class ,
HTML
<body> <p> <img src="http://i.imgur.com/yOadS1c.png" id="minus1" width="20" height="20" class="minus"/> <input id="qty1" type="text" value="1" class="qty"/> <img id="add1" src="http://i.imgur.com/98cvZnj.png" width="20" height="20" class="add"/> </p> <p> <img src="http://i.imgur.com/yOadS1c.png" id="minus2" width="20" height="20" class="minus"/> <input id="qty2" type="text" value="1" class="qty"/> <img id="add2" src="http://i.imgur.com/98cvZnj.png" width="20" height="20" class="add"/> </p> </body>
SCRIPT
$(function () { $('.add').on('click',function(){ var $qty=$(this).closest('p').find('.qty'); var currentVal = parseInt($qty.val()); if (!isNaN(currentVal)) { $qty.val(currentVal + 1); } }); $('.minus').on('click',function(){ var $qty=$(this).closest('p').find('.qty'); var currentVal = parseInt($qty.val()); if (!isNaN(currentVal) && currentVal > 0) { $qty.val(currentVal - 1); } }); });
Fiddle: http://jsfiddle.net/hMS6Y/2/
Alternatively, you can shorten your code,
$(function() { $('.minus,.add').on('click', function() { var $qty = $(this).closest('p').find('.qty'), currentVal = parseInt($qty.val()), isAdd = $(this).hasClass('add'); !isNaN(currentVal) && $qty.val( isAdd ? ++currentVal : (currentVal > 0 ? --currentVal : currentVal) ); }); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <p> <img src="http://i.imgur.com/yOadS1c.png" id="minus1" width="20" height="20" class="minus" /> <input id="qty1" type="text" value="1" class="qty" /> <img id="add1" src="http://i.imgur.com/98cvZnj.png" width="20" height="20" class="add" /> </p> <p> <img src="http://i.imgur.com/yOadS1c.png" id="minus2" width="20" height="20" class="minus" /> <input id="qty2" type="text" value="1" class="qty" /> <img id="add2" src="http://i.imgur.com/98cvZnj.png" width="20" height="20" class="add" /> </p>
source share