Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript &引用;未捕获引用错误:未定义DOM“;_Javascript_D3.js_Observablehq - Fatal编程技术网

Javascript &引用;未捕获引用错误:未定义DOM“;

Javascript &引用;未捕获引用错误:未定义DOM“;,javascript,d3.js,observablehq,Javascript,D3.js,Observablehq,我理解这行D3代码,它将SVG元素添加到HTML页面的主体中,并将对新元素的引用存储在变量“SVG”中: var svg=d3.select('body')。append('svg')。attr('width',500)。attr('height',50); 例如,在Scott Murray的《网络交互式数据可视化》第二版中就使用了它。最近我看到了这种模式: constsvg=d3.select(DOM.svg(500,50)); (例如,在或中) 我想知道这行代码是做什么的,但是当我把它包

我理解这行D3代码,它将SVG元素添加到HTML页面的主体中,并将对新元素的引用存储在变量“SVG”中:

var svg=d3.select('body')。append('svg')。attr('width',500)。attr('height',50);
例如,在Scott Murray的《网络交互式数据可视化》第二版中就使用了它。最近我看到了这种模式:

constsvg=d3.select(DOM.svg(500,50));
(例如,在或中)

我想知道这行代码是做什么的,但是当我把它包含在脚本中时,我得到了控制台错误

未捕获引用错误:未定义DOM


我错过了什么?我已经阅读了Scott Murray的书和D3选择文档(),但找不到DOM.svg的内容。(也没什么帮助。)

这既不是标准的Javascript对象,也不是D3方法。这是一个很好的例子

如果查看,您将看到
DOM
是一组函数:

Object {
  canvas: ƒ(e, t)
  context2d: ƒ(e, t, n)
  download: ƒ(…)
  element: ƒ(e, t)
  input: ƒ(e)
  range: ƒ(e, t, n)
  select: ƒ(e)
  svg: ƒ(e, t)
  text: ƒ(e)
  uid: ƒ(e)
}
所以,在一个可观察的笔记本中,人们可以

DOM.text("I am a text node.")
…创建一个文本节点,或者,正如您刚才发现的

DOM.svg(500, 50)

…创建SVG。然而,这只适用于可观察的笔记本。

扩展前面的答案,DOM确实是可观察的标准库的一部分。您可以通过导出或嵌入笔记本来使用它和Observable之外的其他标准库方法,如文档页面中所述。

确保等待加载DOM,在更改之前。因此,要从该链接引用图例功能,必须下载模块tarball并从那里开始?那么如何在Observable之外“创建SVG”?@EthanT
selection.append(“SVG”)