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>

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...