1

SVG グループg1, g2, ...,のコレクションがありgn、それぞれが子としてmパスを持っています。各グループのパスには"C1"、 、"C2"、 ...という異なるクラスがあります"Cm"。これらのパスのみがこれらのクラスを持ちます。したがって、d3.selectAll(".C1")(または、代わりに) のような選択は、グループ、...、のそれぞれから 1 つずつ、$(".C1")正確にn 個のパスで構成されます。g1gn

各グループのパスは視覚的に重複することがありますが、異なるグループのパス間に重複はありません。

最初はすべてのパスが黒く着色されており、特定のクラスに属するすべてのパスを (別の色で) 強調表示する機能を実装したいと考えています。

みたいな表現

d3.selectAll("." + cx).attr("style", "stroke: #0f0")

また

$("." + cx).attr("style", "stroke: #0f0")

クラスを持つすべてのパスの色を緑 (#0f0) に設定しますcx(ここcxで、文字列"C1"、...、のいずれかを保持します"Cm")。ただし、残念ながら、選択したパスが視覚的に他のパスによって隠されています。(IOW、これらの強調表示されていないパスは、強調表示されたパスの「上に」描画されるため、少なくとも部分的に後者を覆い隠します。)

1 つの解決策は、色を変更する前に、最初に選択したパスを DOM に再挿入して、(設計により選択されていない) 兄弟の最後のパスになるようにすることです。

もちろん、これを実現するために精巧な DOM 操作コードを書くことを想像することもできますが、これはまさに、不要にすることを意図したタイプのコードであるd3と思います。jQuery

これを行うための正しい呪文は何でしょうか? また、このタスクのいずれd3かを好む理由はありますか?jQuery

4

2 に答える 2