Javascript 获取d3.js中svg元素的id
我正试图按照指示将svg元素保存为png。它表示使用saveSvgAsPng(document.getElementById(“diagram”),“diagram.png”)其中“图表”是svg元素的id。现在我找不到身份证了Javascript 获取d3.js中svg元素的id,javascript,d3.js,svg,Javascript,D3.js,Svg,我正试图按照指示将svg元素保存为png。它表示使用saveSvgAsPng(document.getElementById(“diagram”),“diagram.png”)其中“图表”是svg元素的id。现在我找不到身份证了 function guid() { function _p8(s) { var p = (Math.random().toString(16)
function guid() {
function _p8(s) {
var p = (Math.random().toString(16)+"000000000").substr(2,8);
return s ? "-" + p.substr(0,4) + "-" + p.substr(4,4) : p ;
}
return _p8() + _p8(true) + _p8(true) + _p8();
}
var svg = d3.select("#hiddenblock").append("svg")
.attr("svgid",guid())
.attr("width", width + margin.left + margin.right)
.attr("height", height+300+ margin.top + margin.bottom)
.append("g")
.attr("transform", "translate(" + margin.left + "," + margin.top + ")");
上面我尝试给var svg一个id名svgid,然后在图的位置实现它,但在浏览器控制台中说未捕获错误:需要HtmleElement或SvgeElement;获取空值。我尝试使用hiddenblock,但没有成功
我的浏览器的输出示例如下。在这里,元素似乎有一个id,但saveSvgAsPng()函数似乎无法识别它。它不是
svgid
,它只是id
:.attr(“id”,guid())
。也尝试了id,但结果是一样的。它不只是一个名称吗?saveSvgAsPng
函数不需要SVG的id
,它需要SVG元素本身。。。在您的情况下,您可能可以执行saveSvgAsPng(document.querySelector(“#hiddenblock svg”),“diagram.png”)
为什么要为id分配GUID?您似乎没有将该值保存到任何地方,以后如何使用它来检索svg元素<代码>var myGuid=guid()。属性(“id”,myGuid)。。。saveSvgAsPng(document.getElementById(myGuid),“diagram.png”)代码>非常感谢@Mark。成功了!。但是有一个小问题。css不起作用。它不是下载彩色图像,而是只下载黑色。有什么建议吗?