D3 selectAll 多个类 AND or OR
D3 selectAll multiple classes AND or OR
我正在尝试 select 两个 class 这样的,
d3.selectAll(".class1.class2")
但这似乎 select 一个同时具有 class1
和 class2
的元素。我如何 select class 与 class1
或 class2
的元素,但 classes 不必互斥,所以一个元素同时具有 classes 也应该 selected.
也许解决方案只是,
d3.selectAll(".class1")
.........;
d3.selectAll(".class2")
.........;
这似乎有效,
d3.selectAll(".bar||.xAxisText")
根据 Selectors Level 4 Draft 的 D3 documentation the selection methods accept W3C selector strings. If you follow this link and dig into this API you end up at section 4.1 Selector Lists,其中指定:
A comma-separated list of selectors represents the union of all elements selected by each of the individual selectors in the selector list.
对于您的示例,这意味着正确的选择器字符串应该是 ".class1,.class2"
。查看以下代码片段,它使用此选择器字符串为具有 类 class1
或 class2
.
之一或两者的所有段落着色
d3.selectAll(".class1,.class2")
.style("color", "red");
<script src="https://d3js.org/d3.v4.js"></script>
<p class="class1">class1</p>
<p class="class2">class2</p>
<p class="class3">class3</p>
<p class="class1 class2">class1 class2</p>
我正在尝试 select 两个 class 这样的,
d3.selectAll(".class1.class2")
但这似乎 select 一个同时具有 class1
和 class2
的元素。我如何 select class 与 class1
或 class2
的元素,但 classes 不必互斥,所以一个元素同时具有 classes 也应该 selected.
也许解决方案只是,
d3.selectAll(".class1")
.........;
d3.selectAll(".class2")
.........;
这似乎有效,
d3.selectAll(".bar||.xAxisText")
根据 Selectors Level 4 Draft 的 D3 documentation the selection methods accept W3C selector strings. If you follow this link and dig into this API you end up at section 4.1 Selector Lists,其中指定:
A comma-separated list of selectors represents the union of all elements selected by each of the individual selectors in the selector list.
对于您的示例,这意味着正确的选择器字符串应该是 ".class1,.class2"
。查看以下代码片段,它使用此选择器字符串为具有 类 class1
或 class2
.
d3.selectAll(".class1,.class2")
.style("color", "red");
<script src="https://d3js.org/d3.v4.js"></script>
<p class="class1">class1</p>
<p class="class2">class2</p>
<p class="class3">class3</p>
<p class="class1 class2">class1 class2</p>