我有一個D3圖表其層次結構是這樣的:D3圖表選擇部分
svg
g <- this is row labels
g <- this is col labels
g <- this is actual chart
我的問題是,我想實際的圖表部分(第3 <g>
元素)轉換成PNG文件時沒有行col標籤。 所以基本上我需要一個d3.selection只能選擇<svg>
元素和它的第三個<g>
元素,前面的2個<g>
被從選擇中剝離,所以當這個選擇被轉換爲XML字符串並且在<canvas>
上繪製時,沒有標籤。
目前我實現超過XML做文本處理:
var source = (new XMLSerializer()).serializeToString(d3.select("svg").node());
var xmldoc = $.parseXML(source);
$(xmldoc).find("g:eq(1), g:eq(2)").remove();
var src2 = (new XMLSerializer()).serializeToString(xmldoc);
,但我想知道是否有更方便,更優雅的方式。謝謝。
爲何不給克元素類值,然後通過選擇類。或唯一的ID並通過ID選擇。 –