Javascript &引用;未捕获引用错误:未定义DOM“;
我理解这行D3代码,它将SVG元素添加到HTML页面的主体中,并将对新元素的引用存储在变量“SVG”中: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)); (例如,在或中) 我想知道这行代码是做什么的,但是当我把它包
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”)
。