ArsenInvoker,
Нормально работает, если начальное значение input_val > quantity.
Если же начальное значение, например 0, и мы несколько раз жмем +, то получаем ряд значений:
0 3 6 9 12 10
12 появляется из-за того, что наращивание производится после проверки input_val, и результат не проверяется.
Надо добавить проверку результата после наращивания
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>demo</title>
<script type='text/javascript' src='http://code.jquery.com/jquery-1.8.3.js'></script>
<script type="text/javascript">
$(document).ready(function () {
$('.my_plus').click(function () {
var quantity = $(this).parent().parent().find('#quant').html();
var min_quan = $(this).parent().parent().find('#min_quan').html();
var input_val = $(this).parent().find('.quant').val();
var input = $(this).parent().find('.quant');
if (Number(quantity) > Number(input_val)) {
input.val(Number(input_val) + Number(min_quan));
}
if (Number(quantity) < Number(input_val) || Number(quantity) < input.val() ) {
input.val(Number(quantity));
}
});
});
</script>
</head>
<body>
<div>
<div>
<div id="quant">10</div>
<div id="min_quan">3</div>
<div>
<td><input class="quant" type="text" value="0" /></td>
<span class="my_plus">+</span>
</div>
</div>
</div>
</body>
</html>
Какой-то странный у вас тег td без table и tr, но и он не мешает