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?
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:
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.
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:
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.
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.
Hier ist die sauberste Methode, die ich gefunden habe:
%Vor%