d3.select 不抓取正确的标签

Posted

技术标签:

【中文标题】d3.select 不抓取正确的标签【英文标题】:d3.select does not grab right tag 【发布时间】:2016-07-14 00:58:52 【问题描述】:

我正在开发 javascript 项目。

到目前为止,我使用 d3.js 所做的是绘制世界地图。 我参考了以下页面。(http://www.d3noob.org/2013/03/a-simple-d3js-map-explained.html)

所有国家都在 svg 标签下绘制。

我想做的是将图像转换为 png 并下载到本地计算机。

在网上研究了一下,确实可行。

我需要将其转换为base64 datarurl,然后将其转换为png。

我要做的第一件事是选择 svg 标签。

以下是我的代码

function downloadImg()     
        var html = d3.select("svg")
                .attr("version", 1.1)
                .attr("xmlns", "http://www.w3.org/2000/svg")
                .node().parentNode.innerHTML;

        window.alert(html);
        ...
        ...

出于测试目的,我打印出“html”。 它给我的是整个身体。 我只需要 svg 标签元素。

你能告诉我我做错了什么吗?

谢谢。

【问题讨论】:

【参考方案1】:

Element.outerHTML 是你的朋友:

var html = d3.select("svg")
                .attr("version", 1.1)
                .attr("xmlns", "http://www.w3.org/2000/svg")
                .node().outerHTML

【讨论】:

以上是关于d3.select 不抓取正确的标签的主要内容,如果未能解决你的问题,请参考以下文章

判断我的选择是不是捕捉到任何现有元素的正确方法

使用 d3.js 制作分组条形图

Edge不会在svg中正确处理缩放和text-anchor:middle

d3.js入门之DOM操作

网络抓取新值后,Mongodb 集合未正确更新

D3的简单语法