Не корректный jQuery селектор

212
17 августа 2018, 22:20

Есть вот такая разметка:

<button class="up_count_but">+</button> 
<button class="down_count_but">-</button> 
<button class="buy_button" type="submit" value="">
  <img src="images/bin.png" alt="">
</button>
<div class="count">
  <input type="text" class="c_count" value="2"></span>  
  <span>шт.</span>  
</div>

Нужно чтобы при нажатии на кнопку с классом up_count_but, значение в input.c_count увеличивалось на единицу.

$(document).ready(function(){
    $(".up_count_but").on("click", function() {
        $(".up_count_but ~ div > span").value++;
   });
});

Пробую сделать через jQuery - не работает, что не так?

Answer 1

Вы выбираете span, а нужен input:

document.querySelector('.up').addEventListener('click', e => document.querySelector('.up ~ div input').value++);
<input type='button' value='Increase' class='up' /> 
<span>Some text</span> 
<div class='wrapper'> 
  <input type='text' /> 
</div>

В jQuery:

$('.up').on('click', e => { 
  let el = $('.up ~ div input'); 
  $('.up ~ div input').val(+el.val() + 1); 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<input type='button' value='Increase' class='up' /> 
<span>Some text</span> 
<div class='wrapper'> 
  <input type='text' /> 
</div>

Answer 2
<input type="text" class="c_count" value="2"></span>
<input type="text" class="c_count" value="2"><span></span>
$(".up_count_but ~ div > span").value++;
$(".up_count_but ~ div > span").text(fucntion (s) { return ++s });
READ ALSO
При скролле сайт скрывает элементы

При скролле сайт скрывает элементы

При загрузке сайт выглядит так:

229
Как сократить jQuery?

Как сократить jQuery?

Возможно ли как-то сократить данную функцию? Выглядит ужасно, особенно когда попапов более десяти :(

170
calc2.html:19 Uncaught SyntaxError: Unexpected token in Ошибка

calc2.html:19 Uncaught SyntaxError: Unexpected token in Ошибка

Вроде нормально пишу код, делаю переменную, но вот

186