Задать вопрос
@gotohell

Как собрать данные и сохранить в переменную?

Как собрать данные из элементов и разместить их в атрибутах data-

Я делаю так:
$(document).ready(function() {
  $('.euro').on ('click', function() {
price = $('.priceNum').html(); 
$('.click_pay').attr('data-price', price);
    });
  });


$(document).ready(function() {
  $('.tenge').on ('click', function() {
price = $('.priceNum').html(); 
$('.click_pay').attr('data-price', price);
    });
  });


  $(document).ready(function() {
  $('.usd').on ('click', function() {
 price = $('.priceNum').html(); 
$('.click_pay').attr('data-price', price);
    });
  });


Он собирает значения, но берет значение только с первого элемента и размещает их во все data-, а мне нужно что бы бралось значения со своеого родителя и размещалось бы туда же.

Помогите пожалуйста!
  • Вопрос задан
  • 73 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 3
Austin_Powers
@Austin_Powers
Web developer (Symfony, Go, Vue.js)
Попробуйте так:
$(document).ready(function() {
  $('.usd, .tenge, .euro').on ('click', function() {
 price = $(this).parent('.priceNum').html(); 
$(this).parent('.click_pay').attr('data-price', price);
    });
  });
Ответ написан
TTATPuOT
@TTATPuOT
https://code.patriotovsky.ru/
Чё-то вы лишнего нафигачли.
Простое решение:
$(document).ready(function() {
    $('.currency').on('click', function() {
        const price = $(this).closest('.priceNum').html();
        $('.click_pay').data('price', price);
    })
});

Просто добавьте к вашим .usd, .euro и .tenge класс currency
И зачем вам столько document.ready? Хватит одного.
Ответ написан
fallus
@fallus
$(function(){
	$(document).on('click', '.euro, .tenge, .usd', function(e){
		e.preventDefault();
		var that = $(this);
		var dataSelector = 'data-' + $(this).text().toLowerCase();
		$('.priceNum').each(function(idx, elm){
			$(elm).html($(elm).attr(dataSelector) + ' <div class="cenov">' + that.text() + '</div>')
		});
	});
})


P.S. Нет, я не конченый.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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