Wie kann ich auswählen: last-child in d3.js?

7

Ich muss die text Elemente des ersten und letzten Zeigers einer Achse manipulieren, um sie mehr in Richtung Zentrum zu bringen.

Ich versuche, sie einmal auszuwählen, mit etwas wie svg.select('.tick:last-child text') , aber es funktioniert nicht. Ich würde dann .transform('translate(4,0)') ... anwenden.

Mache ich etwas falsch? Wie kann ich das erreichen?

    
mettjus 20.08.2014, 12:57
quelle

6 Antworten

16

Sie können unter Umständen benutzerdefinierte Unterauswahlen erstellen, indem Sie Methoden zu d3.selection.prototype hinzufügen. Sie könnten eine selection.first() -Methode erstellen, die das erste Element in einer Auswahl auswählt, und eine selection.last() -Methode, die das letzte Element auswählt. Zum Beispiel:

%Vor%

Damit können Sie Folgendes tun:

%Vor%

Natürlich müssen Sie sicherstellen, dass Sie nur eine Achse haben, wenn Sie es so machen. Andernfalls geben Sie die Achse in der ersten Auswahl an:

%Vor%

HIER ist ein Beispiel.

    
jshanley 20.08.2014, 20:07
quelle
5

Sie sind nicht spezifisch in d3 vorhanden, aber Sie können die Methoden .firstChild und .lastChild auf einem Knoten verwenden.

Sie können zuerst alle übergeordneten Elemente des Knotens auswählen und dann innerhalb des Umfangs einer .each() -Methode arbeiten, so:

%Vor%

Im Rahmen von .each() bezieht sich this auf den einzelnen Knoten, der nicht von einer d3-Auswahl umschlossen ist, so dass alle Standardmethoden auf einem Knoten verfügbar sind.

    
ckersch 20.08.2014 13:50
quelle
3

Wie Google mich hierher gebracht hat, möchte ich auch eine sauberere Methode zu dem hinzufügen, was Adam Grey geschrieben hat. Manchmal möchten Sie es einfach tun, ohne eine Referenz von selectAll zu nehmen.

%Vor%

Der 3. Parameter der Filterfunktion gibt Ihnen die ausgewählte Liste der Elemente.

    
Fered 17.03.2017 08:31
quelle
2

Die Verwendung von .filter() mit einer Funktion funktioniert auch Auswahl .filter (Filter) :

%Vor%     
Adam Grey 30.11.2016 03:04
quelle
1

Hier ist die sauberste Methode, die ich gefunden habe:

%Vor%     
emilyinamillion 24.07.2017 18:34
quelle
0
  

Es ist für D3.js v4

%Vor%
  

Beispiel:

%Vor%     
vampire 08.12.2017 02:15
quelle

Tags und Links