[英]D3 v4 - Accessing selection array and find corresponding element
我正試圖讓一個約束放松,為我的餅圖工作。 它基於這個示例https://jsfiddle.net/thudfactor/HdwTH/但是使用的放松方法似乎不再適用於v4。
具體問題是他們如何直接訪問選擇組數組:
textLabels = labelGroups.append("text").attr( ... );
if(again) {
labelElements = textLabels[0]; <------------- here
textLines.attr("y2",function(d,i) {
labelForLine = d3.select(labelElements[i]);
return labelForLine.attr("y");
});
setTimeout(relax,20)
}
使用D3 v4.x更改了如何訪問選擇組數組?
你現在怎么樣?
在D3 4.0中,選擇不再是數組。 根據API:
選擇不再使用原型鏈注入子類化Array; 它們現在是普通物體,提高了性能。
所以,如果你使用console.log(textLabels)
,你會看到類似這樣的東西:
{_groups: Array[1], _parents: Array[1]}
具體取決於您選擇的是什么。 從那里,您可以使用textLabels._groups
訪問您的陣列。
對於擁有數組,您必須使用selection.nodes()
,根據API:
返回此選擇中所有(非null)元素的數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.