Bowen
@Bowen
Японский бог

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

Добрый день!

Передо мной стоит задача, собрать данные(которые лежат в дата-атрибуте) у разных элементов в одном массиве.
html
<div class="i" id="director">
	<div data-gt="director1" data-name="director">Director 1</div>
	<div data-gt="director2" data-name="director">Director 2</div>
</div>
<div class="i" id="producer">
	<div data-gt="producer1" data-name="producer">Producer 1</div>
	<div data-gt="producer2" data-name="producer">Producer 2</div>
</div>
Должно получиться так:
'{"director": {"a": [], "b": ["director1", "director2"]}, "producer": {"a": [], "b": ["producer1", "producer2"]}}'

Я сколько пытался, то данные дублировались то в массиве записывались лишь данные последнего элемента.

Буду очень признателен за помощь - советы!
  • Вопрос задан
  • 89 просмотров
Решения вопроса 1
NewProject1
@NewProject1
http://newproject1.com
Не совсем понял что за пустое "a" и "b" - сложил значения просто в director ; producer.

jQuery
var arr = [];

$('.i').each(function(key, wrap) {
    var values = [];
    $.each($(wrap).find('div'), function(k, v) {
         values.push($(v).attr('data-gt'));
    })
    arr[$(wrap).attr('id')] = values;
});

console.log(arr);


Fiddle
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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