Найти по классам и добавить атрибут

121
29 апреля 2021, 10:40

function add_class() { 
	var p_id = $('input[name=\"product_id\"]').val(); 
	var p_q = "$('input[name=\"quantity\"]').val()"; 
	$('#button-cart').addClass(p_id).attr('onclick', 'cart.add(\''+p_id+'\', '+p_q+');'); 
 
	$('.cart .button, .btn-group .btn, .btn-group .btn-primary, .button-group button').each(function() { 
		if(($(this).attr('onclick') && $(this).attr('onclick').substr(0, 9) == 'addToCart') || ($(this).attr('onclick') && $(this).attr('onclick').substr(0, 8) == 'cart.add')) { 
			var p_id = $(this).attr('onclick').substr(8, 14); 
			var p_class = p_id.match(/(\d+)/g); 
			$(this).addClass(''+p_class); 
		} 
	}); 
}

По логике должен строка ниже должна находить все #button-cart и присваивать им атрибут, но этого не происходит. Просьба подсказать

$('#button-cart').addClass(p_id).attr('onclick', 'cart.add(\''+p_id+'\', '+p_q+');');

Answer 1

У вас #button-cart - это идентификатор, он должен быть уникальным, и не встречаться у нескольких элементов сразу. Если button-cart сделать не id, а классом, то получится. Т.е. вместо

<div id="button-cart" ...

сделать

<div class="button-cart" ...

и вместо

$('#button-cart').addClass(p_id).attr('onclick',....

сделать

$('.button-cart').addClass(p_id).attr('onclick',....

P.s.: события лучше навешивать на элемент не через .attr('onclick',..., а через .on('click', ... или .click(...).

READ ALSO
Выходит ошибка Cannot read property &#39;1&#39; of undefined | NodeJs

Выходит ошибка Cannot read property '1' of undefined | NodeJs

При обработке команды "привет" выходит ошибка:Cannot read property '1' of undefined Понимаю, что 1 - не найденоА как исправить данную ошибку, понять не могу

94
Обработка нажатия на кнопку в Alert (ReactJS + vkui) [дубликат]

Обработка нажатия на кнопку в Alert (ReactJS + vkui) [дубликат]

Cтолкнулся с проблемой, при открытии Alert меню в моём приложении, я не могу обработать нажатия кнопки в немСам алерт:

91