是否可以使用字符串在Ajax语句中引用json对象?

时间:2014-08-06 21:55:18

标签: javascript php jquery ajax json

所以我有一个javascript函数。它执行一个ajax调用,以检索充满数据的json对象。在该ajax调用的成功函数中,我通过ANOTHER ajax调用来检索该特定集合的数据列的名称。 (是的,我确定有更好的方法,但那不是我的问题)。在这个时间点我有两个变量:items(json数组)和interfaceCols(只是一个字符串数组)。然后我尝试创建一个html字符串来创建一个包含所述数据的表。

这是我的代码,它将使一切更加清晰:

$.ajax({
        url:"/ryan/nonEmber/ajax.php?table=Interfaces",
                    beforeSend: function(XMLHttpRequest){},
                    success: function(data, textStatus) {
                    interfaceCols = data.split(" ");
                    $.getJSON("/ryan/nonEmber/getJson.php?table=Interfaces", function( data ){
                        var items = [];
                         $.each(data.post, function(key, val){
                            items.push(val);
                          });
                        for(i = 0; i < items.length; i++){
                            var myString = '<tr id = "visibleRow">';
                            console.log(items[i].interfaceCols[4]);
                            for(j = 0; j < interfaceCols.length; j++){                              
                                myString = myString + '<td id = "visibleDef">' + items[i].interfaceCols[j] +'</td>';
                            }
                            myString = myString + '</tr>';
                            interfaces.push(myString);
                        }

                     });                    
                     }
    });

我的javascript文件在"myString = myString + '<td id ='...行引发错误。

我几乎是肯定的,因为我只是在"items[i]"的末尾添加一个字符串".interfaceCols[j]"

有人可以建议一种方法吗?整点是这样我不必手动输入每个列名,因为我有很多表,每个表都有很多列。

1 个答案:

答案 0 :(得分:2)

给定一个JS对象s

s = {a: 1, b: 2}

您有(至少)两个选项来访问属性:

s.a // returns 1

这似乎是你现在正在努力做的事情。要使用动态名称访问它,您可以使用:

s['a'] // returns 1

在你的情况下,它应该是:

items[i][interfaceCols[4]]