Внутри
each() каждый
elem — ссылка на натуральный
DOM-элемент.
Так что либо так
$('.js-to-cart').each(function(i, elem) {
console.log($(elem).attr('data-item'));
});
либо так
$('.js-to-cart').each(function() {
console.log($(this).attr('data-item'));
});
А вот ещё несколько приёмов
$('.js-to-cart').each(function(i, elem) {
console.log(elem.dataset.item);
console.log($(elem).attr('data-item'));
console.log($(elem).data('item'));
console.log(this.dataset.item);
console.log($(this).attr('data-item'));
console.log($(this).data('item'));
});
Нужно помнить, что
data() в
jQuery — не совсем то же самое, что и
data-атрибуты. Это — метод у
jQuery-объекта, позволяющий хранить любой тип данных. Значение атрибута — лишь стартовое значение, преобразованное, по возможности, в наиболее подходящий тип (например, попробуйте задать в качестве значения атрибута массив).