如果你想要将选择减少到一组选定的要素,则使用filter<>strong>。 如果你想选择附庸内容,则使用select 或slectAll/strong>。
通常,过滤器被用于根据数据或指数对部件进行过滤。 但是,在过滤功能中,您可以查阅选定元素(>this
)。 因此,如果你选择了一些要素,而且你只想把这一选择减少到那些有1个不透明因素的人,你可以说:
var opaque = selection.filter(function() {
return this.style.opacity == 1;
});
为了安全起见,你可能更愿意看computed风格,而不是内容风格。 这样,如果从风格上继承不透明,那么你就会获得正确价值;否则,如果一个风格继承了<条码>,那么,即: 字典<>/条码>将是空洞的。
var opaque = selection.filter(function() {
return window.getComputedStyle(this, null).getPropertyValue("opacity") == 1;
});
或相当的是,选择节点和使用。
var opaque = selection.filter(function() {
return d3.select(this).style("opacity") == 1;
});
You might find it easier if you filter by data or by class, instead of by computed style property. For example, if you set a class on your nodes, you can filter a selection by class instead:
var opaque = selection.filter(".opaque");