1
我很難理解selection.filter
。我想這一點,在一個空白文檔:困惑selection.filter
d3.selectAll('rect')
.data([1, 2, 3])
.filter(function(d) { return d>1; })
// [ Array[0] ]
我預想的選擇有兩個元素,但它有0也許是因爲我有一個空的更新選擇工作......
d3.selectAll('rect')
.data([1, 2, 3])
.enter()
.filter(function(d) { return d>1; })
// []
現在看來我甚至沒有選擇。
如果DOM元素存在
d3.selectAll('rect').data([1, 2, 3])
.enter().append('rect')
,然後我選擇和過濾
d3.selectAll('rect').filter(function(d) { return d>1; })
// [ Array[2] ]
它似乎工作。那麼這裏發生了什麼?篩選器似乎在this example中對不與任何DOM元素對應的選擇工作,所以我期望它在我上面的第一個示例中工作。
整蠱!非常感謝Lars。這就是我通常所做的,我只是看到了這個例子,並且想慣用地做事情。 –
沒問題,那個例子中的縮進非常容易讓人誤解。 –