Ermolov
@Ermolov
Начинающий Full Stack разработчик

Как выполнять арифметику сразу во всех полях?

Здравствуйте! Помогите пожалуйста. Есть функция арифметических манипуляций над значением в теге, но она работает только для одного из них, если указать класс для всех необходимых полей, то выводит NaN, а нужно чтобы функция выполнялась во всех тегах с разными значениями одновременно. Условно, есть несколько тегов с классном .s6035 в них лежат разные числа. Нужно при клике на другой объект совершить арифметические манипуляции, в данном случае сложение и вычитание. Прибавляем к существующим числам данные из атрибута data-col Делаю так:

$(() => {
    // получаем все нужные DOM-узлы
    const $amount = $('.plus');
    const $cost = $('.minus');
	const $buttons = $('.s6035').data('col');
    const $button = $('.s6035'); 
	
    
    
    $amount.on('click', () => {
       let currentAmount = parseInt($button.text()); // достаем текущее значение
       $button.text(currentAmount + parseInt($buttons) ); // кладем новое значение обратно
        
    });
	
	$cost.on('click', () => {
       let currentAmount = parseInt($button.text()); // достаем текущее значение
       $button.text(currentAmount - parseInt($buttons) ); // кладем новое значение обратно
        
    });

});


Работает только с одим тегом.
  • Вопрос задан
  • 56 просмотров
Решения вопроса 1
erge
@erge
Примус починяю
Если вы хотите делать именно на jQuery, то вам необходимо перебрать все элементы которые возвращает
$('.s6035')
и уже с ними производить манипуляции, для этого есть метод .each
смотрите jQuery - Перебор массива, объекта и элементов

и это будет примерно так:
$(".plus").on("click", function(){
  $.each($(".s6035"), function(index, element){
    $(element).text(parseInt($(element).text()) + parseInt($(element).data("col")))
  })
})

$(".minus").on("click", function(){
  $.each($(".s6035"), function(index, element){
    $(element).text(parseInt($(element).text()) - parseInt($(element).data("col")))
  })
})


Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы