2012-04-26 51 views
0

我正在嘗試將一些json數據加載到自定義JQuery函數中。我可以很容易地解決這個問題,因爲我可以隨時學習。請告知我是否正在以錯誤的方式進行。將JSON數據附加到自定義JQuery函數

截至目前,我只是追加到身體,以確保我實際上正確地找到數據。我試圖使用append()將它添加到函數中,但沒有得到任何地方。

$.getJSON("designs/new.json",function(result){ 
     $.each(result, function(i, field){ 
      $("body").append(field['hex'] + " "); 
     }); 
}); 

基本上是我想要做的就是替換十六進制數據值從上面的json數據的十六進制代碼,這個顏色拾取功能。我已經搞了一會兒,似乎無法找到正確的方法。

$.fn.colorPicker.defaults.colors = ['000', '000', 'fff', 'fff']; 

我很感謝提前的幫助!

+0

'console.dir()'是真棒在控制檯傾銷對象:'函數(結果){控制檯.dir(result)}'(通過在FF和Chrome中按F12調出控制檯) – powerbuoy 2012-04-26 00:24:05

回答

0

嘗試使用警報(JSON.stringify(result))來查看您的json數據是否已正確加載。此代碼應工作:

$.getJSON("t.json", function (result) { 
    //alert(JSON.stringify(result)); 
    $.fn.colorPicker.defaults.colors = result.colors; 
}); 

其中t.json有以下內容:

{ 
    "colors": ['00a', '00b', 'ffa', 'ffb'] 
} 
0

如果我理解正確:

1)你的JSON返回對象的數組(可能爲四個),每有一個「十六進制」屬性? 2)你想根據這四個十六進制屬性設置顏色選擇器的默認顏色。

因此,假設我的假設是正確的,你的陣列正確排序,你可以做這樣的事情:

$.getJSON("designs/new.json",function(result){ 
     $.fn.colorPicker.defaults.colors = $.map(result, function(i) { 
      return i.hex; 
     }); 
}); 

我映射六角屬性數組和直接分配給它的顏色。同樣,這是假設您的結果對象中有四個對象的數組,每個對象都有一個十六進制屬性。