例如:
svg.append("svg:rect");
答案 0 :(得分:3)
来自d3.js append()
documentation
可以将名称指定为常量字符串,也可以将其指定为返回要追加的DOM元素的函数。当名称指定为字符串时,它可能具有“namespace:tag”形式的名称空间前缀。例如,“svg:text”将在SVG名称空间中创建“text”元素。默认情况下,D3支持svg,xhtml,xlink,xml和xmlns命名空间。可以通过添加到d3.ns.prefix来注册其他名称空间。 如果未指定命名空间,则命名空间将从封闭元素继承;或者,如果名称是已知前缀之一,则将使用相应的命名空间(例如,“svg”表示“svg:svg”)。
因此,this提交后,命名空间(在大多数情况下)是可选的。
答案 1 :(得分:1)
svg:
部分指定要用于元素的命名空间。特别是,svg:rect
表示应在SVG名称空间中解释rect
。这是相关的,因为并非所有名称空间中都存在所有类型的元素(例如,HTML没有rect
s。)
由于命名空间是从上下文派生的,因此通常不需要在最新版本的D3中明确指定。在某些情况下,您需要指定它以正确解释文档。一个值得注意的例子是在SVG中使用foreignObject
时,允许您嵌入非SVG内容,请参阅this example。这里有必要指定xhtml
作为附加body
元素的命名空间,因为上下文是SVG并且它将被错误地解释。