1

私は SCXML を使用しており、私のデータは次のようなものです。

<state id="umbrella_state">
  <state id="state1"></state>
  <state id="state2>
    <transition event="cancel"></transition>
    <transition event="next"></transition>
  </state>
  <transition event="quit"></transition>
</state>

状態とその遷移を視覚化する目的で D3 を使用していますが、必要な遷移だけを正確に選択するのに苦労しています。

d3.selectAll("#transitions") // selects everything, which I don't want

私が望むのは、状態の遷移のみを選択し、そのサブ状態を選択しないことです。たとえば、state1 の唯一の遷移は「quit」です。私は次のようなものを想像します:

d3.selectAll("[id=umbrella_state]").selectAll("transition :not(transition > transition)")

(そして、目的の状態に達するまで、親の状態ごとにこれを繰り返します)。

4

2 に答える 2

1

API docs selectによると、すべての要素ではなく、セレクタ条件に一致する最初の要素のみを取得する必要があります。

また、APIドキュメントによると、d3セレクターはCSS3標準を使用しているため、このようなものです

d3.select("state ~ transition")

状態要素のの最初の遷移兄弟のみを選択する必要があります。(~文字は、最初のセレクターの後のある時点で続く兄弟を指定します。詳細はこちら) 残念ながら、1 つ前の兄弟に対する CSS3 セレクターはありません。

お役に立てれば。

于 2014-06-18T23:54:36.910 に答える