Javascript d3.在inkscape上选择:标签=";"富",;

Javascript d3.在inkscape上选择:标签=";"富",;,javascript,d3.js,svg,inkscape,Javascript,D3.js,Svg,Inkscape,我试图通过其inkscape:label属性选择一个层,以便能够在网站上显示/隐藏该层 function hideFOO() { if(d3.select("#hideFOO:checked").node()){ d3.select("#layer11").attr("visibility", "hidden"); } else { d3.select("#layer11").attr("visibility", "visible");

我试图通过其
inkscape:label
属性选择一个层,以便能够在网站上显示/隐藏该层

function hideFOO() {
    if(d3.select("#hideFOO:checked").node()){
        d3.select("#layer11").attr("visibility", "hidden");
    } else {
        d3.select("#layer11").attr("visibility", "visible");        
    }
}
SVG是

<g
     inkscape:groupmode="layer"
     id="layer11"
     inkscape:label="foo"
     style="display:inline"> ...
。。。
这很好——但我希望能够指定
inkscape:label
,因为多个SVG中的层ID不同,但层名称不同

当我尝试这样的事情时;
d3.选择(“:inkscape:label='foo')).attr(“可见性”、“隐藏”)我刚被告知<代码>语法错误:':inkscape:label='foo'不是有效的选择器

或者
d3.选择($('g[inkscape:label=“foo”]”)attr(“可见性”、“隐藏”)它告诉我参数列表后的
SyntaxError:missing)
尽管我的所有“')都关闭了


基于下面的解决方案-我还尝试了
d3.select('g[inkscape\\\:label=“foo”]”).attr(“可见性”、“隐藏”)但它也没有隐藏层-在浏览器的开发控制台中播放时,会出现
d3。选择
在路径上不匹配。

这是使用CSS将可见性变为隐藏的方式:

其思想是您需要使用inkscape的名称空间

/*声明命名空间的前缀*/
@名称空间墨水“http://www.inkscape.org/namespaces/inkscape";
/*逃离结肠:或者使用管道|*/
[inkscape\:label=“foo”],[ink | label=“foo”]{
/*可见性:隐藏*/
填充:红色;}
svg{border:1px solid}


刚刚试用了
d3.select('g[inkscape\\\:label=“foo”]).attr(“可见性”、“隐藏”)但它没有隐藏层。我想我还不明白什么。我认为(可能是错误的)这样做意味着我不需要担心声明名称空间?也许你应该尝试为
样式设置
可见性:hidden
,这根本无法解决问题抱歉。