我有5个现有的div
元素和一个包含5个值的数组data
。
目前d3 d
中的each
会返回undefined
,而data[i]
会返回该值。
d3.selectAll("div")
.each(function(d,i){
console.log(d, i, data[i]);
}
如何关联div
和data[i]
,以便d
在不使用d data[i]
的情况下返回enter()
的值?
答案 0 :(得分:0)
解决方案是here。将id
添加到每个div
,然后通过data
和id
使用加入key
。
data = [
{"key":"0","val":"10"},
{"key":"1","val":"5"},
{"key":"2","val":"8"}
];
...
d3.selectAll("div.h-bar")
.data(data, function(d:any){
var x = d? d.key : this.id;
return x;
})
.each(function(d:any,i:any){
console.log(d, i, data[i]);
}
答案 1 :(得分:0)
我们可以使用datum(newvalue)
将newvalue
分配给每个元素的模型。
data
.forEach(function(d:any){
var item = d3.select('#div'+d.key).datum(d);
});