0

我正在尝试构建一个可重用的函数来提取 json 结果并写回页面

到目前为止,我得到了 json,当它返回时运行一个函数,该函数将一些数据传递给索引和结果。一切正常

问题是当我围绕函数中的结果进行迭代时(见下文)

有时数据结构可能是 data.userGroup.form 有时是 data.userGroup.user 等等

我试图做的是将我想使用的名称作为最后一个参数传递给函数,即“用户”和内部.each 调用 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;
}
4

1 回答 1

1

您需要使用括号表示法而不是点表示法作为成员运算符

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;
}
于 2013-07-11T06:14:17.403 回答