JQuery получить предыдущий div внутри строки

0

Как я могу получить значения из предыдущего 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);
            });
        });

Но он не работает

  • 0
    Какие "ценности" вы хотите получить?
  • 0
    У меня есть вход и кнопка плюс. Я хочу добавить 1 к входу, когда я нажимаю кнопку. Но количество строк зависит от количества продуктов. Поэтому я хочу сделать это динамично.
Показать ещё 2 комментария
Теги:
selector
closest

3 ответа

0
Лучший ответ

Вы забыли точки перед именами классов input-sm и row.

Кроме того, вам не нужно space между .form-control и .input-sm, потому что space используется для поиска элементов потомков

var currentVal = $(this).closest('.row').find('.form-control.input-sm').val();
1

Чтобы получить предыдущий, найдите ближайшую 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;
});
0

Селектор не совсем прав, я не думаю.

$(this).closest(".row")...[etc] должен работать

row будет искать элемент с именем row, а не имя класса элемента.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню