Показать сообщение отдельно
  #1 (permalink)  
Старый 11.08.2016, 05:59
wet wet вне форума
Интересующийся
Отправить личное сообщение для wet Посмотреть профиль Найти все сообщения от wet
 
Регистрация: 12.07.2016
Сообщений: 14

Нужно добавить новые ключи и значения в многомерный массив
есть такой контент
<div class='question' type='text' data-question='вопрос'>вопрос
    <div class='answer' type='text' data-answer='ответ 1'>ответ 1</div>
    <div class='answer' type='text' data-answer='ответ 2'>ответ 2</div>
</div>
 
<div class='question' type='text' data-question='вопрос 2'>вопрос 2
    <div class='answer' type='text' data-answer='ответ 3'>ответ 3</div>
    <div class='answer' type='text' data-answer='ответ 4'>ответ 4</div>
</div>
 
<h1 id='upload' style='text-align:center; display:block;'>ok</h1>
Нужно пройтись по всем блокам, собрать данные и добавить их в массив. Я сделал так
var testList = {};
var i = 0;
    $('#upload').on('click', function() {
        $('.question').each(function(){
            i = i+1;
            var cur_el = $(this);
            var question = cur_el.attr('data-question');
            
            testList[i] = {
                    'testName' : 'Тест',
                    'questionsList' : {
                        'question' : question,
                        'answerList' : {}
                    }   
                };
            
            var y = 0;
            cur_el.find('.answer').each(function(){
                y = y+1;
                var answer = $(this).attr('data-answer');
console.log(y);             
                testList.i.answerList.y.push( {'answer' : answer} );
            }); 
        });
 
        console.log(testList);      
    });
Но вылетает ошибка TypeError: testList.i is undefined. Подскажите как решить эту задачу. На выходе должны получить такой массив
testList[1] = {
        'testName' : 'Тест',
        'questionsList' : {
            0 : {
                'question' : 'Вопрос 1',
                'answerList' : {
                    0 : {
                        'answer' : 'Ответ 1'
                    },
                    1 : {
                        'answer' : 'Ответ 2'
                    }
                }
            },
            1 : {
                'question' : 'Вопрос 2',
                'answerList' : {
                    0 : {
                        'answer' : 'Ответ 3'
                    },
                    1 : {
                        'answer' : 'Ответ 4'
                    }
                }
            }
        }
    };
Ответить с цитированием