微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

d3.js – D3 select所有多个类AND或OR

我试图选择这样的两个类,

d3.selectAll(".class1.class2")

但这似乎选择了一个同时具有class1和class2的元素.如何使用class1 OR class2按类选择元素,但类不必相互排斥,因此也应选择包含这两个类的元素.

也许解决方案就是,

d3.selectAll(".class1")
 .........;
 d3.selectAll(".class2")
 .........;

解决方法

根据D3的 documentation,选择方法接受 W3C selector strings.如果您按照此链接深入了解此API,您最终会在选择器级别4草案的第 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 07003.

对于您的示例,这意味着正确的选择器字符串将是“.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>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐