Dom d3选择没有id的元素

Dom d3选择没有id的元素,dom,d3.js,css-selectors,Dom,D3.js,Css Selectors,我有以下几点 <g id="s1s2" class="contact"> <g class="baseCircle"> <path id="s1s2_base"> </g> <path > <path > </g> 它返回所有路径: [[path#s1s2_base, path, path]] 有什么建议吗?您必须更改您不想选择的元素id的id: d3.sele

我有以下几点

<g id="s1s2" class="contact">
    <g class="baseCircle">
        <path id="s1s2_base">
    </g>
    <path >
    <path >
</g>
它返回所有路径:

[[path#s1s2_base, path, path]]

有什么建议吗?

您必须更改您不想选择的元素id的
id

d3.select('g#s1s2.contact').selectAll('path:not(#s1s2_base)');
在D3中,不带第二个参数的
.attr()
函数可以用作getter

因此,选择所有
并对其进行过滤,消除那些具有ID的。在这种情况下

!d3.select(this).attr("id")
对于此类路径,将返回
true

var noId=d3.selectAll(“路径”).filter(函数(){
return!d3.选择(this).attr(“id”)
});
console.log(noId.attr(“类”)

您的选择器有点不正确。要选择所有没有
id
属性的元素,可以使用
“path:not([id])”
。请注意,这是如何使用额外的方括号表示这实际上是一个

console.log(d3.selectAll(“路径:非([id])”).size();//2

!d3.select(this).attr("id")