Javascript D3js,在selectAll(';rect';)中选择rect时出现未捕获的引用错误

Javascript D3js,在selectAll(';rect';)中选择rect时出现未捕获的引用错误,javascript,d3.js,Javascript,D3.js,我用D3做一张图表。我希望用户能够通过调整单列水平柱图表上堆叠条形图的大小来输入他们的选择 条是堆叠的,每个条都有.call(drag)事件侦听器 此拖动事件返回一个错误 var drag = d3.behavior.drag() .on('drag', function() { var i = state.interactingWith //i represents current element var rects = d3.select('.svg

我用D3做一张图表。我希望用户能够通过调整单列水平柱图表上堆叠条形图的大小来输入他们的选择

条是堆叠的,每个条都有.call(drag)事件侦听器

此拖动事件返回一个错误

var drag = d3.behavior.drag()
    .on('drag', function() {

        var i = state.interactingWith //i represents current element
        var rects = d3.select('.svg').selectAll('.bar') //Get all stacked bars
        var handles = d3.select('.svg').selectAll('.handle') //Get all event handlers, on the edges of bars
        var currentX = d3.select(rects[0][i]).attr('x')

        d3.select(rects[0][i])
            .attr('width', d3.event.x - currentX)
        d3.select(handles[0][i])
            .attr('cx', d3.event.x)

        if (i < rects[0].length-1){

            var j = i+1 //I want to select the next element, but not if this element is the last
            var currentNextWidth = d3.select(rects[0][j]).attr('width') //This returns the error
            var newNextWidth = currentRightWidth + (+d3.event.x - currentX) 

            d3.select(rects[0][j])
                .attr('x', d3.event.x)                  
            d3.select(rects[0][j])
                .attr('width', newRightWidth)
            questions[i].displayWidth = newRightWidth   

        }
    })
它说有问题的行是
var currentNextWidth….

如果我用所需的索引替换j,它将按预期工作。
有人知道这里发生了什么吗?

您没有提到变量状态和state.interactingWith是如何获得的。试着在控制台中有问题的行和日志j,rect[0][j]上放置一个调试点,以检查它们在当前范围内是否可用。

您没有提到如何获得变量状态和状态.interactingWith。尝试在有问题的行和控制台中的日志j,rect[0][j]上放置一个调试点,以检查它们是否在当前范围内可用。

确定,因此
状态。Interactivity
是一个字符串

我没有意识到
I
是一个字符串,因为它本身就可以正常工作<代码>i+1播放


我想发生的是
I
(string)作为
array['1']
工作,但是
I+1
作为
array['11']
好,所以
状态。interaction
是一个字符串

我没有意识到
I
是一个字符串,因为它本身就可以正常工作<代码>i+1播放


我想发生的是
I
(string)作为
array['1']
工作,但是
I+1
作为
array['11']

我应该提到,state是一个包含所有图表设置的全局对象。这最终是一个类型问题。我应该提到,state是一个包含所有图表设置的全局对象。这最终是一个类型问题。
Uncaught TypeError: Cannot read property 'getAttribute' of null .... d3.min.js:3