选择函数在3.5.4版本的d3.js中不工作 [英] select function not working in 3.5.4 version of d3.js

查看:198
本文介绍了选择函数在3.5.4版本的d3.js中不工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have updated d3.js from 3.5.3 to 3.5.4. I am getting below error since last update. The code code works on 3.5.3 version though.

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版本添加任何东西吗?

This is my line of code where I am getting error? Do I need to add anything more for using 3.5.4 version?

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 + ")")


推荐答案

d3#3.5.4 ,JSDOM是一个开发依赖。您将需要将其包括为依赖关系。注意,JSDOM 4.0.0需要io.js,对Node.js使用3.x。对于我的依赖关系工作是:

As of d3#3.5.4, JSDOM is a development dependency. You will need to include it as a dependency. Be mindful that JSDOM 4.0.0 requires io.js, use 3.x for Node.js. For me dependencies that work are:

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

在代码中替换行:

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

var document = require('jsdom').jsdom();
var svg = d3.select(document.body).html('').append('svg')

有关示例,请参阅此要点

这篇关于选择函数在3.5.4版本的d3.js中不工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆