2014-09-02 54 views

回答

3

从名称既可以作为恒定或字符串作为一个返回的DOM元素追加一个函数来指定d3.js append() documentation

。当名称被指定为一个字符串时,它可能有一个名称空间前缀,形式为“namespace:tag”。例如,“svg:text”将在SVG命名空间中创建一个“text”元素。默认情况下,D3支持svg,xhtml,xlink,xml和xmlns命名空间。可以通过添加到d3.ns.prefix来注册其他名称空间。 如果没有指定名称空间,则命名空间将从封闭元素继承;或者,如果名称是已知前缀之一,则将使用相应的名称空间(例如,“svg”意味着“svg:svg”)。

因此,因为this提交,所以命名空间(大多数情况下)是可选的。

1

svg:部分指定要用于元素的名称空间。特别是,svg:rect意味着rect应该在SVG名称空间中解释。这是相关的,因为不是所有类型的元素都存在于所有的命名空间中(例如,HTML没有rect s)。

您通常不需要在D3的最新版本中明确指定,因为命名空间是从上下文派生的。在某些情况下,您需要指定它来正确解释文档。一个值得注意的例子是在SVG中使用foreignObject,它允许您嵌入非SVG内容,请参阅this example。这里有必要指定xhtml作为所附body元素的命名空间,因为上下文是SVG,并且它将被错误地解释。