2013-09-24 5 views
0

«Я пытаюсь назначить переменную из родительского div в строку json дочерней таблицы и, похоже, не может получить свой javascript прямо.Как назначить переменную объекту json

То, что я хотел бы видеть, или некоторые вариации:

{"blocks":[{"id":"115",courses:[{"Semester":"S,F","Credits":"3","Subject":"ACT"}‌​, {"Semester":"F","Credits":"6","Subject":"CSI"}]}] 

И JQuery У меня есть до сих пор.

$('#update').click(function (e){ 
    var table = $('#table').tableToJSON(); 
    var blockId = $('#table').closest('div.Block').attr('id'); 
    table = {"block":table}; 
    document.getElementById('courseList').value = JSON.stringify(table); 
} 

Я не уверен, как добавить переменную, которая мне нужна в объекте? Как вставить blockId?

+1

Опечатка '$ ('# таблица)' изменить его на '$ (' # стол ')' .Вы забыл close quotes –

+0

Где переменная, которую вы пытаетесь добавить еще раз? – tymeJV

+1

И где именно следует блокировать? – adeneo

ответ

0

Я предполагаю, что кронштейн обозначения того, что вы действительно ищете:

$('#update').on('click', function(){ 
    var table = $('#table').tableToJSON(); 
    var blockId = $('#table').closest('div.Block').attr('id'); 
    var table2 = {}; 

    table2[blockId] = table; 

    $('#courseList').val(JSON.stringify(table2)); 
}); 
+0

Ну да, это сработает. Но теперь мне интересно узнать, как я смогу сделать этот действительный JSON? – idonaldson

+0

Если метод 'tableToJSON()' создает объект, это не проблема, он будет действительным JSON после того, как объект будет стрифицирован. Если метод 'tableToJSON()' создает строку, а не объект, перед ее обработкой необходимо проанализировать ее с помощью 'JSON.parse()'. – adeneo

+0

Будет что-то вроде '{" blocks ": [{" id ":" 115 ", курсы: [{" Semester ":" S, F "," Credits ":" 3 "," Subject ":" ACT " }, {«Семестр»: «F», «Кредиты»: «6», «Тема»: «CSI»}]}] 'больше в формате JSON? – idonaldson

Смежные вопросы