массив:
Id/count/price
1 / 3 / 4
2 / 3 / 4
3 / 5 / 2
4 / 5 / 2
5 / 5 / 2
?
Помогите, пожалуйста, я какие-то невероятно мудреные циклы пишу и все равно толку нет
а можно в коде то, что у вас есть на данный момент, а то я что-то теряюсь хд
Ну, эти элементы получаю из div т.е. <div data-id="1,2" data-count="3" и тд
ну покажите, что уже есть
const arr = [] document.querySelectorAll('div[data-id]').forEach(el => arr.push(el.getAttribute('data-id') и тд))
В смысле мои попытки или строки, которые разобрать нужно? Потому что мои попытки - это типа: Сначала split- сделал массив, потом перебирая через map каждому элементу пытаюсь добавить count и price, но что-то криво получается
ну хотелось бы просто видеть, что именно есть в плане вёрстки конкретно, чтобы не угадывать
<div data-id="1,2" data-count="3"... <div data-id="3,4,5" data-count="5"... и тд
у тебя id реально через запятую? или ты это так сократил?
Почему айдишек-то несколько у одного элемента?
а селектор у них какой общий? как-то у вас странненько всё
через зпт точно, сплитить же приходится
Это не Id элемента же, это дата-атрибут Каждая строка имеет checkbox и помеченные потом обхожу через each и тут уже собираю массив для отправки на сервер
чекбокс, отвечающий за несколько значений сразу, что ли?
звучит как сомнительный такой ux
const rawData = [...document.querySelectorAll('[data-id]')].map(element => ({ ids: element.dataset.id.split(','), count:element.dataset.count, price:element.dataset.price })) const normalizedData = [] for(let {ids, count, price} of rawData){ for(let id of ids) normalizedData.push({id, count, price}) }
Решение выше, но это 100% костыли из-за неверного подхода
Вот попытка её решения
.
Обсуждают сегодня