Javascript 选择d3之后的元素(此)

Javascript 选择d3之后的元素(此),javascript,d3.js,Javascript,D3.js,在d3中,我根据元素的性质设置元素的动画 .on('mouseover', function (d, i) { d3.selectAll('rect') .attr('y', function() { // affects all <rect> elements // I have tried if (source.length > (i + 1)) {

在d3中,我根据元素的性质设置元素的动画

.on('mouseover', function (d, i) {
    d3.selectAll('rect')
        .attr('y', function() {
            // affects all <rect> elements
            // I have tried
            if (source.length > (i + 1)) {
                console.log(i);
            }
        }

    d3.select(this)
        .attr('y' function() {
            // affects only the mouseover element
        }

    // since above didn't work, maybe some other selection method will?
    d3.select(AllThingsAfterthis)
        .attr('y' function() {
            // some other values
        }
})
您可以通过以下方式执行此操作:


完成演示。

将您必须的svg标记添加到问题中,此文本描述没有帮助。添加代码以澄清。我在d3中寻找一种方法,它可以针对索引在this对象后面的元素。所以你有一个group(我相信它是
g
tag),当其中一个被悬停时,你想对组中的所有rect做些什么?这绝对是一种方法。但我需要在每次鼠标悬停事件时生成该组标记,因为悬停状态将触发重新生成。似乎没有那么有效。
rect 1 -> .selectAll
rect 2 -> .selectAll
rect 3 -> this
rect 4 -> how do I target this?
rect 5 -> or this specifically?
.on("mouseover", function() {
    var node = this;
    while(node = node.nextSibling) {
        d3.select(node)...;
    }
})