Javascript 如何在D3.js中选择svg的父div

Javascript 如何在D3.js中选择svg的父div,javascript,svg,d3.js,Javascript,Svg,D3.js,我已经阅读了几篇文章和教程,但对于如何使用d3.select选择svg的父div,我找不到足够的答案。我基本上只想在包含我的图表的div中添加一个工具提示,如下所示 //this selection probably doesn't make sense... var tooltip = d3.select("#pie-svg").select(this.parentNode).append("div") .attr("class", "piechart-tooltip"

我已经阅读了几篇文章和教程,但对于如何使用d3.select选择svg的父div,我找不到足够的答案。我基本上只想在包含我的图表的div中添加一个工具提示,如下所示

//this selection probably doesn't make sense...
var tooltip = d3.select("#pie-svg").select(this.parentNode).append("div")
            .attr("class", "piechart-tooltip")
            .style("opacity", 0);
大致如下:


您在问题中发布的代码的问题在于,在这个上下文中,它不会被定义或设置为正确的元素。当与.each一起使用时,它会。

谢谢,效果很好。但是我现在面临着将工具提示添加到正确位置的问题,因为在使用d3.event.pageX和.pageY获取鼠标坐标之前,我需要知道与svg的父div相关的坐标。我尝试使用类似的方法和mousecontainer,但在控制台中,它说“undefined不是函数”,因此它无法识别父div。我将在下面发布我的代码,以便您可以查看。我只是尝试了mousecontainer,它不会返回undefined。我假设问题是因为我无法将parentNode作为容器传递。。您对我如何解决这个问题,将div容器传递给mouse有什么建议吗?随着我的窗口缩小,div容器实际上正在动态调整大小,我不想使用鼠标,因为这并不总是给我正确的位置。你可以在工具提示中使用绝对定位,然后仍然使用pageX和pageY。我已经在使用绝对定位,但它仍然完全脱离容器。你可以吗请发布一个完整的例子来说明问题?
var tooltip;
d3.select("#pie-svg").each(function() {
  tooltip = d3.select(this.parentNode).append("div")
        .attr("class", "piechart-tooltip")
        .style("opacity", 0);
});