Javascript 检索到动态添加的元素顶部的距离

Javascript 检索到动态添加的元素顶部的距离,javascript,d3.js,Javascript,D3.js,在我的例子中,我动态地添加按钮。添加的每个按钮都有不同的类。我已经设置了样式规则,这样每个后续按钮都将位于前一个按钮的下方。所以,我需要的是找到每个按钮到顶部的距离,以便以后在逻辑上使用它 在下面的代码中,我尝试了两种方法来检索到顶部的距离。第一个使用本机javascript,我将其存储为:var=h。第二次,我尝试了更多的D3方法,我将其存储为:var=h2 d3.select('body').append('button') .text('X') .attr('id','bu

在我的例子中,我动态地添加按钮。添加的每个按钮都有不同的类。我已经设置了样式规则,这样每个后续按钮都将位于前一个按钮的下方。所以,我需要的是找到每个按钮到顶部的距离,以便以后在逻辑上使用它

在下面的代码中,我尝试了两种方法来检索到顶部的距离。第一个使用本机javascript,我将其存储为:
var=h
。第二次,我尝试了更多的D3方法,我将其存储为:
var=h2

d3.select('body').append('button')
    .text('X')
    .attr('id','button'+(intCount+1))
    .attr('class',choice+'1')
    .on('click', function(d,i) {
    var t = d3.select(this).attr('id')
    var c = d3.select(this).attr('class')
    var h = document.getElementByID(t).offsetTop;
    var h2 = d3.select(this).offsetTop
      var thisChoice = choice;

      d3.selectAll('.' + t).remove();
      d3.selectAll('.'+ thisChoice+'1').remove();
      intCount -= 1;
      count -= .7;
    });
这两者在控制台日志中都返回null。哦,实际上,一个给了我一个错误,另一个返回未定义。

在D3方法中,您只需要
这个
,而不是
D3。选择(这个)
,它将返回D3选择:

d3.选择('body')。追加('button'))
.text('X')
.on('单击',函数()){
var h2=此偏移量;
console.log(h2)
});

PS:我只回答你的问题,没别的了。但是,我有一种强烈的感觉,这是一个。没错,我将使用顶部距离尝试通过
translate
或其他方式修改不同元素的y位置。如果我不能从这里找到答案,我将发布一个新问题。谢谢你的解释!