2011-09-09 56 views
1

我想这相对容易,但我无法弄清楚如何做到这一点。的HTML/JS(Jquery的)的如何使用Jquery或JS获取数组的对象名称

零件文件

var checkedBox = $('input[name=ProductType]:checked').val(); 

      $.getJSON('getdata.php', {ProductType: checkedBox}, function(getit) { 
       $.each(getit, function(index, array) { 

从PHP文件取出一个变量数组通JSON后。我可以在控制台中看到以下信息:

控制台

[{"color":"red"},{"color":"blue"},{"color":"yellow"}] 

根据复选框的值,PHP文件将返回数组对象名。 (在这种情况下“颜色”)及其相应的值。

现在我想捕获这个数组objectname在var与Jquery或JS,因为数组objectnames可以不同。但我该怎么做?

+0

如果它们都具有相同的密钥,为什么不能只返回一个字符串数组? '['red','blue','yellow']' – Dennis

+0

因为我想使用该键在我的代码的不同部分输出数据到多个div id。 – Jroen

回答

5

我猜你想要做的是从JSON数据中提取名称。如果您有这方面的数据回来从你的PHP JSON:

var getit = [{"color":"red"},{"color":"blue"},{"color":"yellow"}]; 

而且,你想从公共属性名和阵列中的所有值都具有相同的名称,你可以那么那么这样的:

function getKeyName(data) { 
    var firstItem = data[0]; // look at first array element 
    for (var i in firstItem) { 
     return(i); // return first property name found 
    } 
} 

var attributeName = getKeyName(getit); 

如果你控制了JSON数据格式,我认为这将是一个更有用的数据格式有这样的:

{"name": "color", "values": ["red", "blue", "yellow"]} 

然后,你可以直接访问:

data.name // "color" 
data.values // ["red", "blue", "yellow"] 
+0

+1为修订的JSON数据格式。这就是我会做的 – fehays