2015-01-05 25 views
0

我試圖操縱hightcharts數據由因爲這樣做顯示餅圖:如何操作jQuery中的hightcharts數據?

<div style="display: none" id="main-data"> 
    <span data-name="Firefox" data-value="45"></span> 
    <span data-name="IE" data-value="26.8"></span> 
</div> 

function getPieData() { 
var dataArr = []; 
$('#main-data span').each(function() { 
    var name = $(this).data("name"); 
    var value = $(this).data("value"); 
    dataArr.push(name); 
    dataArr.push(value); 
}); 

return dataArr; 
} 

var dataArr = [['Firefox',45.0],['IE',26.8]]; 
var dataArr1 = getPieData(); 

如果我使用dataArr,圖表顯示效果細膩。但是,如果我使用dataArr1,它只顯示1個單一垂直線。我試圖打印出兩個dataArr,並看到它們都格式正確。我怎樣才能修復我的dataArr1以顯示一個餅圖作爲dataArr呢?

回答

0

您使用函數(dataArr1)創建的數組是一維的,而您手動實例化的數組(dataArr)是二維的。它必須是二維的,以包含名稱 - 值對。

在你的例子後,你的陣列包含以下內容:

dataArr = [['Firefox', 45.0], ['IE', 26.8]]; 
dataArr1 = ['Firefox', 45, 'IE', 26.8]; 

你需要按陣列到您的陣列,您getPieData()函數中。例如像這樣:

function getPieData() { 
    var dataArr = []; 
    $('#main-data span').each(function() { 
     var name = $(this).data("name"); 
     var value = $(this).data("value"); 
     dataArr.push([name, value]); 
    }); 

    return dataArr; 
} 
+0

謝謝。它工作完美。 – WhatAName