Как я могу получить значения из предыдущего div внутри строки?
echo '<div class="row">
<div class="col-md-3" style="padding-left: 0px; width: 80px; height: 4px;">
<input type="text" value="'.$item['SAP'].'" class="form-control input-sm">
</div>
<div class="col-md-4" style="padding-left: 0px; width: 330px;">
<input type="text" value="'.$item['Name'].'" class="form-control input-sm" style="width: 300px">
</div>
<div class="col-md-2" style="padding-left: 0px; width: 40px; height: 4px;">
<input type="text" class="form-control input-sm" id="'.$item['SAP'].'" value="0" style="width: 40px">
</div>
<div class="col-md-1" style="width: 40px; height: 4px;">
<button type="button" class="btn btn-default btn-xs">
<span class="AddQuantity glyphicon glyphicon-plus"></span>
</button>
</div>
</div>'enter code here'
Я использую это:
$('.AddQuantity').on('click', function () {
var currentVal = $(this).closest('row').find('.form-control input-sm').val();
alert(currentVal);
});
});
Но он не работает
Вы забыли точки перед именами классов input-sm
и row
.
Кроме того, вам не нужно space
между .form-control
и .input-sm
, потому что space
используется для поиска элементов потомков
var currentVal = $(this).closest('.row').find('.form-control.input-sm').val();
Чтобы получить предыдущий, найдите ближайшую DIV-оболочку, получите предыдущий DIV, а затем найдите вход:
$(this).closest('div').prev('div').find('.form-control.input-sm').val();
или для всех из них (добавление 1)
$(this).closest('.row').find('.form-control.input-sm').val(function(_,v) {
return (+v) + 1;
});
Селектор не совсем прав, я не думаю.
$(this).closest(".row")...[etc]
должен работать
row
будет искать элемент с именем row
, а не имя класса элемента.