【发布时间】:2020-03-01 05:44:42
【问题描述】:
我有一个类似的节点:
<div>
<svg ...>
<g class="graph">
<path class="myarea" d="...AAA..." pos="p1"> </path>
</g>
<g class="graph">
<path class="myarea" d="...BBB..." pos="p2"> </path>
</g>
<g class="graph">
<path class="myarea" d="...CCC..." pos="p3"> </path>
</g>
/svg>
</div>
我正在尝试选择具有pos='p2' 属性的特定节点(例如 where d="...BBB...")
d3.selectAll(".myarea").each(function(d,i) {
console.log("-> ", d3.select(this).attr("pos"), d3.select(this).attr("pos") == 'p2' );
});
这会产生/返回一个包含所有 3 个条目的数组:
-> p0 错误
-> p1 真
-> p2 错误
-> [数组(3)]
我有兴趣只选择一个,在本例中是带有.attr("pos") == 'p2' 的那个,所以我想只返回一个元素。
我尝试过使用map() 和filter(),但没有成功。
根据属性值选择特定元素的正确方法是什么?
【问题讨论】:
-
很好,这行得通。不知道那个语法
.select(.myarea[pos='p2']")
标签: javascript node.js d3.js filter