问题 append(“svg:g”)和append(“g”)之间的区别


我在d3js项目上工作,我看到了一些教程 append("g") 和其他 append("svg:g") 没有得到两者之间的差异。


7266
2017-07-11 13:59


起源



答案:


在D3的早期阶段,您需要使用 svg:g 语法是因为SVG元素被附加到DOM的方式。 D3的更高版本不需要这些“提示”来插入SVG元素,因此现在正确的方法是使用简单的方法 g


这背后的技术细节相当沉闷,SVG需要命名空间,因此当您插入或操作您使用的SVG元素时 document.createElementNS('a', "http://www.w3.org/2000/svg) 白色纯HTML使用 document.createElement('a')。由于D3可以操纵SVG和HTML d3.append('svg:a') 是一种说法 这是一个SVG锚点。


10
2017-07-11 15:14



谢谢你这个清晰而完整的答案! :) - Georgio


答案:


在D3的早期阶段,您需要使用 svg:g 语法是因为SVG元素被附加到DOM的方式。 D3的更高版本不需要这些“提示”来插入SVG元素,因此现在正确的方法是使用简单的方法 g


这背后的技术细节相当沉闷,SVG需要命名空间,因此当您插入或操作您使用的SVG元素时 document.createElementNS('a', "http://www.w3.org/2000/svg) 白色纯HTML使用 document.createElement('a')。由于D3可以操纵SVG和HTML d3.append('svg:a') 是一种说法 这是一个SVG锚点。


10
2017-07-11 15:14



谢谢你这个清晰而完整的答案! :) - Georgio


我得到了关于d3js API的答案,这是一个名称空间问题。在svg:g中,svg是命名空间(可选)。 我的错,对不起,我必须更好地阅读API


3
2017-07-11 14:12