2011-09-09 58 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