(function($) { $.fn.spinner = function() { this.each(function() { var el = $(this); // add elements el.wrap(''); el.removeAttr("id"); el.before('-'); el.after('+'); // substract el.parent().on('click', '.sub', function () { if (el.val() > parseInt(el.attr('min'))) el.val( function(i, oldval) { return --oldval; }); el.trigger("change"); }); // increment el.parent().on('click', '.add', function () { if (el.val() < parseInt(el.attr('max'))) el.val( function(i, oldval) { return ++oldval; }); el.trigger("change"); }); }); }; })(jQuery);