javascript - d3.js 路径 dom 元素

标签 javascript dom svg d3.js

我正在创建一个流图,使用了 http://bl.ocks.org/mbostock/4060954 中的示例代码。作为模板。

我画了流图:

var svg = d3.select("#graph_area").append("svg") 
    .attr("width", width)
    .attr("height", height)

....

svg.selectAll("path")  
    .data(layers) 
.enter().append("path")  
    .attr("d", function (d) {return area(d.layer);})

现在似乎不允许我为此处的 DOM 元素选择与 "path" 不同的名称。如果我这样做,那么streamgraph将不再绘制。 这是为什么?

然后我想添加一个带有项目符号的图例,但它们不绘制。这些元素显示在我的网络检查器(firebug)中,但它们的图形表示不存在。我认为 DOM 元素名称可能有类似的问题,但我实际上不知道。这是我的项目符号的代码:

//draw all the legend bullets and effects
svg.selectAll("bullets")  
    .data(layers)  
.enter().append("bullets")  
    .attr("cx", 200)
    .attr("cy", function(d, i) { return 20 + i*10; })
    .style("fill", function(d) { return d.color; })
    .attr("r", 5)

我简要地查看了路径的 API herehere ,但我没有在那里找到答案。

最佳答案

您可以使用的元素名称在 SVG specification 中定义。 。这是一个特定的集合(例如 pathcircle)——使用其他任何东西都可以将元素附加到 DOM,但浏览器不知道如何操作解释并渲染它。

在 HTML 中也是如此 - 有一组特定的已定义元素名称,浏览器知道如何呈现。

关于javascript - d3.js 路径 dom 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24202320/

相关文章:

java - 如何在 Selenium 中通过 DOM 属性识别元素?

javascript - 词云中缺少 d3.js 词

svg - 使用 SVG feDisplacementMap 过滤器,如何消除锯齿?

javascript - 使用 jQuery selectable 选择连续的元素

java - 解析 XML 并获取标签 value 属性内的数据

javascript - 为什么我们在 javascript 函数中创建 "window.x = x = ..."?

javascript - 使用 jQuery 创建动态 div

css - svg 标签是否可以使用 css 样式表中的坐标?

javascript - 如何防止在 Angular 中上传某些类型的文件?

javascript - 使用纯 javascript 以百分比形式获取元素在视口(viewport)中的可见性