Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取d3.js中svg元素的id_Javascript_D3.js_Svg - Fatal编程技术网

Javascript 获取d3.js中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)

我正试图按照指示将svg元素保存为png。它表示使用saveSvgAsPng(document.getElementById(“diagram”),“diagram.png”)其中“图表”是svg元素的id。现在我找不到身份证了

                    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不起作用。它不是下载彩色图像,而是只下载黑色。有什么建议吗?