我一直在使用每個循環在每個div的每個循環中創建一個google條形圖和sankey圖表。 BLOQUES
數組有三個元素。我遍歷它們,並在每個循環中創建一個div,以生成並放置條形圖和sankey圖表。但是,出於某種原因,所有sankey圖表都附加到第三個div(BLQ3_MAIN
,在上一個循環中創建的div)。下面是我的代碼:在「each」循環中,圖表被追加到上一個循環中創建的div中
function drawBarChart() {
$.each(BLOQUES , function(index, bloque){
$bloque = $("<div id='" + bloque + "_MAIN'></div>");
$("#BLOQUES").append($bloque);
pages = $.grep(myArray, function(n, i) {return n.BLOQUE === bloque;});
$.each(pages, function(index, page){
$page = $("<div style='class='" + page.PAGE_SHORT + "'></div>");
$bloque.append($page);
//THE CODE FOR ADDING BARCHART GOES HERE
//AND IT WORKS FINE
});
//##################################################
//DRAW SANKEY ACROSS PAGES FOR EACH BLOQUE
$.get('pw_' + bloque + '_COLL.csv', function(mydata){
var arrayData = $.csv.toArrays(mydata, {onParseValue:$.csv.hooks.castToScalar});
var data = new google.visualization.arrayToDataTable(arrayData);
//SOME OTHER CODE SKIPPED
$sankey_holder = $('<div id="' + bloque + '_sankey"></div>');
$bloque.append($sankey_holder);
var chart_sankey = new google.visualization.Sankey(document.getElementById(bloque + '_sankey'));
chart_sankey.draw(data, options);
});
});
}
關於以下兩行:
$sankey_holder = $('<div id="' + bloque + '_sankey"></div>');
$bloque.append($sankey_holder);
bloque
攜帶在每次迭代中的預期值,但$bloque
總是在第三環路創建div(即,BLQ3_MAIN
)。可能我錯過了一些有關這些代碼應該如何工作的邏輯。
當我嘗試這個:
var chart_sankey = new google.visualization.Sankey($sankey_holder));
我收到Container is not defined
錯誤。
任何想法和建議?