SVG グループg1
, g2
, ...,のコレクションがありgn
、それぞれが子としてmパスを持っています。各グループのパスには"C1"
、 、"C2"
、 ...という異なるクラスがあります"Cm"
。これらのパスのみがこれらのクラスを持ちます。したがって、d3.selectAll(".C1")
(または、代わりに) のような選択は、グループ、...、のそれぞれから 1 つずつ、$(".C1")
正確にn 個のパスで構成されます。g1
gn
各グループのパスは視覚的に重複することがありますが、異なるグループのパス間に重複はありません。
最初はすべてのパスが黒く着色されており、特定のクラスに属するすべてのパスを (別の色で) 強調表示する機能を実装したいと考えています。
みたいな表現
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