[英]Selecting DOM elements but not their children in D3
我正在使用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
我想要的只是选择一个状态的过渡,而不是其子状态。 例如,状态1的唯一转换是“退出”。 我想像这样:
d3.selectAll("[id=umbrella_state]").selectAll("transition :not(transition > transition)")
(并针对每个父状态重复此操作,直到我达到所需的状态)。
我用这样的选择器解决了我的问题:
d3.selectAll("[id='" + state.attr("id") + "'] > transition")
相当于:
d3.selectAll("[id='umbrella_state'] > transition")
我递归地执行每个级别的操作,直到达到最深的状态。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.