2

我有一个加载了 SVG Jquery 插件http://keith-wood.name/svg.html的外部 SVG 。SVG 的一行是:
<g groupmode="layer" id="layer1" inkscape:label="myLabel"></g>
我可以通过这一行获取该元素的标签值,
$('#layer1', svg.root()).attr("inkscape:label");
这将返回值“myLabel”。
如何使用该值选择相同的元素?
尝试
var myElement = $('g[inkscape:label="myLabel"]', svg.root());
没有运气。

有什么建议吗?
蒂亚!

4

3 回答 3

2

根据this SO post引用jquery docs,你最好的选择是var myElement = $('g[inkscape\\:label="myLabel"]', svg.root());

于 2013-03-19T19:59:21.867 回答
0

对我来说,唯一有效的解决方案是这个

const t = document.querySelectorAll('g') 
const layer = Array.from(t)
    .filter(t => t.getAttribute('inkscape:label') === 'myLabel')[0]
于 2021-11-26T15:24:02.443 回答
0

我不可能按照你的要求让它工作。我得到的解决方案是复制标签,但使用下划线而不是两个点,如下所示:

$('path').each(function() {
    $(this).attr({
        "inkscape_label" : $(this).attr('inkscape:label')
    });
});

然后我可以像这样选择我想要的标签:

$('[inkscape_label = ...
于 2018-06-28T22:24:54.150 回答