选择功能在d3.js的3.5.4版本中不起作用

时间:2015-02-09 13:06:33

标签: d3.js

我已将d3.js从3.5.3更新为3.5.4。 自上次更新以来,我遇到了以下错误。代码代码适用于3.5.3版本。

D:\softwares\nodejs\node_modules\d3\d3.js:562
    return n.querySelector(s);
         ^
TypeError: Cannot call method 'querySelector' of undefined
    at d3_select (D:\softwares\nodejs\node_modules\d3\d3.js:562:14)
    at Object.d3.select (D:\softwares\nodejs\node_modules\d3\d3.js:1043:17)
    at IncomingMessage.<anonymous
(D:\softwares\nodejs\node_modules\chart.js:63:14)
    at IncomingMessage.emit (events.js:92:17)
    at _stream_readable.js:943:16
    at process._tickCallback (node.js:419:13)

这是我的代码行,我收到错误? 我是否需要为使用3.5.4版本添加更多内容?

var svg = d3.select('body').html('').append('svg')
    .attr('xmlns', 'http://www.w3.org/2000/svg')
    .attr('xmlns:xlink', 'http://www.w3.org/1999/xlink')
    .attr("width", width + margin.left + margin.right)
    .attr('height', height + margin.top + margin.bottom)
    .attr('id', 'app-d3-bar-chart')
    .append("g")
    .attr("transform", "translate(" + margin.left + "," + margin.top + ")")

1 个答案:

答案 0 :(得分:3)

d3#3.5.4开始,JSDOM是一个开发依赖项。您需要将其作为依赖项包含在内。请注意,JSDOM 4.0.0需要io.js,对于Node.js使用3.x.对我来说,有效的依赖是:

<data>

然后在你的代码替换行:

"dependencies": {
  "d3": "~3.5.5",
  "jsdom": "~3.1.2"
}

var svg = d3.select('body').html('').append('svg')

有关工作示例,请参阅this gist