如何选择所有具有(任何)类的元素

时间:2019-08-14 02:49:21

标签: javascript vue.js d3.js

我正在使用D3 selectAll执行转换。我大约有260条路线,但是只有80条路线有一个课程。

我应该如何选择所有具有类的路径?

1 个答案:

答案 0 :(得分:1)

您不需要D3来检查元素是否具有类,但这是基于D3的答案。使用D3吸气剂时...

selection.attr("class")

...对于没有类的元素,它将返回null

因此,您所需要做的就是检查吸气剂。

例如,假设您具有5条路径的SVG,其中3条路径具有一个类:

<svg>
  <path></path>
  <path class="foo"></path>
  <path class="bar"></path>
  <path class="baz"></path>
  <path></path>
</svg>

通过在filter中使用吸气剂,即使类不同,我们也只能获得具有类的元素:

const pathsWithClass = d3.selectAll("path")
  .filter(function() {
    return d3.select(this).attr("class")
  });

console.log("Elements with class: " + pathsWithClass.size())
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/5.7.0/d3.min.js"></script>
<svg>
  <path></path>
  <path class="foo"></path>
  <path class="bar"></path>
  <path class="baz"></path>
  <path></path>
</svg>