Javascript 在mouseover d3.js Force布局上标记子对象

Javascript 在mouseover d3.js Force布局上标记子对象,javascript,d3.js,force-layout,Javascript,D3.js,Force Layout,我想在鼠标上方标记节点的子节点。为此,我首先在输入时为所有节点创建了一个文本属性。然后我为mouseover事件定义了一个淡入淡出功能。 在o.selecttext行中选择节点o的文本属性时遇到困难。我得到一个错误o。选择不是一个函数。我该怎么做呢 function fade(opacity) { return function(d) { if (d.group == 5){ sourceNeighbors[d.index].sort(compare); link.

我想在鼠标上方标记节点的子节点。为此,我首先在输入时为所有节点创建了一个文本属性。然后我为mouseover事件定义了一个淡入淡出功能。 在o.selecttext行中选择节点o的文本属性时遇到困难。我得到一个错误o。选择不是一个函数。我该怎么做呢

function fade(opacity) {
 return function(d) {
    if (d.group == 5){
     sourceNeighbors[d.index].sort(compare);
     link.style("stroke-opacity", function(o) {

       if (o.source === d || o.target === d) {
        return opacity;
       }
       else if (isConnected(o.source,d) && isConnected(o.target, d)) {
        return 1;
       }
    return opacity;
    });

        node.style("stroke-opacity", function(o) {

        if ((d.name != o.name) && isConnected(d, o)) {
            if (opacity == 1) {
                o.select(text)
                    .text("");
            }
            else {
                var num = findIndex(d.index, o.index);
                o.select(text)
                    .text(num.toString());      
            }
        }


            thisOpacity = isConnected(d, o) ? 1 : opacity;
            this.setAttribute('fill-opacity', thisOpacity);
            return thisOpacity;
        });


    }
 };
}
更新:我将行更改为d3.selecto.text; 此外,这里还有一些示例,d3.js代码在script.js中。
这是我在鼠标上方看到的,红色节点缺少文本。

o的定义是什么?@Larskothoff我对d3.js不熟悉,但我从这一行假设node.stylestroke-opacity,functiono{o指的是一个noderlight,所以你没有在其他地方定义它?很难弄清楚只有部分代码和模糊的描述是怎么回事,我认为创建一个文本属性意味着创建了一个文本元素。我猜你需要d3.selectthis.selecttext而不是o.selecttext。@Larskothoff,按照你的建议,我已经排除了错误,但我仍然不知道为什么我看不到节点上的文本。我确实在mouseover上显示了代码和屏幕截图。谢谢!你不能将文本元素附加到圆中。请参阅