дублируються данные когда передаю в json

167
21 марта 2018, 06:52

у меня есть n количество табов, с которых нужно собрать данные но проблема в том что если в первом у нас doc 1, doc 2, а во втором doc 3, doc 4 - То результат при сохранении получаеться в первом табе doc 1, doc 2, doc 3, doc 4 а во втором doc 1, doc 2, doc 3, doc 4 как это можно исправить? html:

<div id="eventItems">
<div data-section-name="document" id="20">
   <div class="cd__item"><div class="cd__item-name"><span>doc 1</span></div></div>
   <div class="cd__item"><div class="cd__item-name"><span>doc 2</span></div></div>
</div>
<div data-section-name="document" id="49">
   <div class="cd__item"><div class="cd__item-name"><span>doc 3</span></div></div>
   <div class="cd__item"><div class="cd__item-name"><span>doc 4</span></div></div>
</div>
<button>save</button>
</div>

js:
$("button").click(function() {
var event = [],
    objEvent = {},
    customDocsEvent = [];
$('#eventItems').find("[data-section-name='document']").each(function() {
                $(this).find(".cd__item").each(function() {
                    var name = $(this).find(".cd__item-name").find("span").text()
                    customDocsEvent.push({
                        name: name
                    });
                });
                if (customDocsEvent.length) {
                    $('#eventItems').find("[data-section-name='document']").each(function() {
                        var idSection = $(this).attr("id");
                        objEvent = {
                            "type" : "document",
                            "id" : idSection,
                            "content" : customDocsEvent
                        };
                        event.push(objEvent);
                    });
                }
            });
            var elements = [
                {
                    "section" : "event",
                    "data" : event
                }
            ];

            elements = JSON.stringify(elements);
            console.log(elements);
});
Answer 1
  1. В коде один и тот же массив customDocsEvent во всех objEvent.

    $('#eventItems').find("[data-section-name='document']").each(function() {
      customDocsEvent = []; // !!!
      ...
  2. Уберите внутренний цикл по $('#eventItems').find("[data-section-name='document']") - он не нужен.

READ ALSO
Проверка на символы

Проверка на символы

Как прoверить, есть ли в input type="text" определенные символы с помощью js, например, мне надо проверить, присутствует ли символ @ в значении, которое...

197
Удалить часть переменной

Удалить часть переменной

Есть пременаяя fileWay она содержит часть значение что-то типа

146
Ванильная галерея js

Ванильная галерея js

Господа пробую писать простую галерею с переключением картинки на jsИз банальных примеров нашёл вот что

149