элементы цикла в массиве jQuery

#javascript #jquery #loops

Вопрос:

Извините за мой плохой английский, но,

Я пытаюсь зациклить все дочерние элементы в массиве, но он продолжает зацикливать только первый элемент, однако, сколько элементов внутри родительского

 $(".js-drawer-open-cart").on("click", function (event) {  var items = [];   $(".cart__items .cart__item").each(function () {  let product_title = $(".cart__item--name").attr("data-product-title");  let product_id = $(".cart__item--name").attr("data-product-id");  let product_variant = $(".cart__item--name").attr("data-product-variant");  let product_quantity = $(".cart__item--name").attr("data-product-quantity");  let product_price = $(".cart__item--name").attr("data-product-price");   dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.  var item = {};   item.item_name = product_title;  item.price = product_price;  item.item_brand = "El grande Porto";  item.item_variant = product_variant;  item.quantity = product_quantity;     items.push(item);    });   dataLayer.push({  event: "view_cart",  ecommerce: {  items: items,  },  });  });  

Комментарии:

1. можете ли вы показать свой html-код ?

2. $(this).find(".cart__item--name")

Ответ №1:

$(".cart__items .cart__item").each выполняет итерацию по всем элементам, соответствующим данному селектору, а не по дочерним элементам этого элемента. Если должно быть только одно совпадение, попробуйте взять первый элемент и перебрать его дочерние элементы?

Пример: $(".cart__items .cart__item").first().children().each

Комментарии:

1. На самом деле я хочу нацелиться на каждый div, у которого есть класс .cart__элементов внутри их родительского .cart__элементов, и зациклить их внутри массива, но он продолжает повторять только первый элемент 4 раза

Ответ №2:

Это работает для меня благодаря ответу эпаскарелло :

Все, что мне нужно было сделать, это :

 $(this).find(".cart__item--name").attr("data-product-title");  

Комментарии:

1. Вместо того, чтобы благодарить кого-то за ответ в качестве ответа, просто введите его в разделе комментариев