2013-07-11 1 views
0

Я пытаюсь построить многоразовую функцию вытягивать результаты JSon и запись обратно на страницуполучения результатов обратно из JSon массива внутри функций

до сих пор я получаю JSON и когда возвращающие запустить функцию, которая проходит некоторые данные - индекс и результат. Это все работает отлично

Проблема заключается в том, когда я пошел делать итерации вокруг результата в функции (если смотреть снизу)

иногда структура данных может быть data.userGroup.form и другие времена data.userGroup. user и т. д.

то, что я пытался сделать, это передать имя, которое я хочу использовать в качестве последнего аргумента, то есть «пользователь» и wihin внутренний .each call element.name (где имя может меняться) но это не работает. может ли кто-нибудь помочь?

здесь код

$.when(promise).then(function(result) { 

    $(result.data.userGroup).each(function(index, element) { 
    var html = getHTML(["Name", "Delete"], index, element, "user"); 

     $("#accordion2").append(html); 
    }); 

}) 

function getHTML(array, index, element, name) { 

var html = " <div class='accordion-group'>"; 
html = html + "<div class='accordion-heading'>"; 
html = html + "<span class='accordian-image'></span>" + element.name + "</a>"; 
var inner =""; 

    $(element.name).each(function(i, result) { 
    inner = inner + "<tr><td>" + result.name + "</td>" ; 
    }); 

html = html + inner; 
return html; 
} 

ответ

1

Вы должны использовать bracket notation вместо dot notation как member operator.

element[name] 

Ex

$.when(promise).then(function(result) { 

    $(result.data.userGroup).each(function(index, element) { 
     var html = getHTML(["Name", "Delete"], index, element, "user"); 

     $("#accordion2").append(html); 
    }); 

}) 

function getHTML(array, index, element, name) { 

    var html = " <div class='accordion-group'>"; 
    html = html + "<div class='accordion-heading'>"; 
    html = html + "<span class='accordian-image'></span>" + element[name] + "</a>"; 
    var inner =""; 

    $(element.name).each(function(i, result) { 
     inner = inner + "<tr><td>" + result[name] + "</td>" ; 
    }); 

    html = html + inner; 
    return html; 
} 
Смежные вопросы