Javascript 为什么d3.select().style()不应用于<;部门>-元素?

Javascript 为什么d3.select().style()不应用于<;部门>-元素?,javascript,d3.js,Javascript,D3.js,我已经盯着这个看了一段时间了,我只是不知道我做错了什么。我基本上是在尝试自己实现这个示例: 以与本文类似的方式,我有一个DOM结构,如下所示 <div id="d3"> <div id="labels"> <div class="label">Label</div> </div> <svg> << SVG-stuff >> </svg> </d

我已经盯着这个看了一段时间了,我只是不知道我做错了什么。我基本上是在尝试自己实现这个示例:

以与本文类似的方式,我有一个DOM结构,如下所示

<div id="d3">
    <div id="labels">
        <div class="label">Label</div>
    </div>
    <svg> << SVG-stuff >> </svg>
</div>
但是:运行此操作时,不会对元素应用任何样式


我错过了什么?在这个例子中,这是怎么起作用的呢?

我很乐意自己回答这个问题,以防其他人对此感到困惑。style()

上述情况下的问题是
d.dx
未定义,这意味着函数不返回任何内容

我只是没有意识到,如果是这种情况,甚至没有应用

.style()
确实适用于DOM中任何位置的div元素,只要定义了它的参数:


.style(“left”,函数(d){return d.x+“px”;})

如果将来有人看到这种情况,请确保您尝试应用的样式有效。我试图将元素的“文本锚定”样式设置为“右”,但它就是不去!结果是“结束”,而不是“正确”。

“没有样式不应用于元素”我猜您的意思是“没有样式应用于元素”。您是否检查了样式是否已设置,或者您只是没有看到更改?有错误信息吗?请注意,您需要将数据绑定到您选择的元素,以使其正常工作。在本小提琴中对我有效:您需要添加
position=“absolute”如果你们还没有,谢谢你们!原来罪魁祸首是
d.dx
确实
未定义。我想,由于函数不返回任何内容,因此没有应用任何样式,甚至没有
style=“left:;”
d3.selectAll(".label")
   .style("left", function(d) { return d.x - (d.dx / 2) + "px"; })
   .style("left", function(d) { return d.x - (d.dx / 2) + "px"; })