无法在Polymer中获取d3的元素

时间:2016-10-13 19:15:12

标签: javascript jquery d3.js polymer cubism.js

我正在尝试实施cubism,并在我的组件中使用 v2。第一步是为图表选择DOM元素:

d3.select("#example1").call(function(div) {
...    
});

这会在cubism.v1.js的第1205行返回以下错误:

  

未捕获的TypeError:无法读取属性" appendChild'为null

检查代码后,div对象没有ID,innerHtml值为所有的html(以<head>开头,以{结尾) {1}})。

我假设这是由于代码运行后聚合物呈现</body>,但我不确定。我尝试将<div id='example1'></div>语句放在select下的<script>标记和<dom-module>函数中。两者都有相同的结果。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

我能够通过更改此问题来解决问题:

d3.select("#example1").call(function(div) { .. }

到此:

var chart = self.$$('#example1');
d3.select(chart).call(function(div) { ... }

Automatic node finding下所述。

答案 1 :(得分:0)

要使用D3V5在Polymer中选择阴影DOM元素(具有ID,类等),只需执行以下操作:

<div id="example"></div>

d3.select(this.$.example)