我正在使用D3 selectAll
执行转换。我大约有260条路线,但是只有80条路线有一个课程。
我应该如何选择所有具有类的路径?
答案 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>