无法让选择器与 JQuery SVG 库一起使用

发布于 2024-09-28 15:01:45 字数 986 浏览 4 评论 0原文

我无法使用 Keith Wood 的 SVG 库让外部加载的 SVG 执行我想要的操作。

我可以通过以下方式加载外部 SVG:

$(document).ready ( function () {  
      $("#some_id").svg({  
            loadURL: 'my_file.svg',  
            onLoad: my_function,  
            settings: {}  
          });  
});

我可以让 my_function 正常工作。我只是无法让选择器正常工作。

我的外部加载的 SVG 采用以下形式:

<g id="parent_id">
  <path id = "child_1_id"  />
  <path id="child_2_id" />
  etc.  </g>

我可以用以下方式对整个parent_id 元素进行着色:

svg.style('#parent_id {fill: blue}')

但是当我尝试时:

svg.style('#child_id {fill: blue}')

什么也没有发生。

svg.style('g> path {fill: blue}') svg.style('g#parent_id > path {fill: blue}')

两者都工作正常 - 没问题。但是,例如,当我引入 #child_id 时:

svg.style('g#parent_id > path#child_id {fill: blue}')

什么也没有发生。我希望能够单独设置所有 child_id 元素的样式。我缺少什么?

I'm having trouble getting an externally loaded SVG to do what I want it to with Keith Wood's SVG library.

I can load an external SVG fine with:

$(document).ready ( function () {  
      $("#some_id").svg({  
            loadURL: 'my_file.svg',  
            onLoad: my_function,  
            settings: {}  
          });  
});

I can get my_function working fine. I just can't get selectors working properly.

My externally-loaded SVG takes the form:

<g id="parent_id">
  <path id = "child_1_id"  />
  <path id="child_2_id" />
  etc.  </g>

I can colour the whole parent_id element fine with:

svg.style('#parent_id {fill: blue}')

But when I try:

svg.style('#child_id {fill: blue}')

nothing happens.

svg.style('g> path {fill: blue}') svg.style('g#parent_id > path {fill: blue}')

both work fine - no problem. But the minute I introduce #child_id, for instance:

svg.style('g#parent_id > path#child_id {fill: blue}')

nothing happens. I want to be able to style all the child_id elements separately. What am I missing?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

ぇ气 2024-10-05 15:01:45

如果您的子 ID 在整个 svg 文档中是唯一的,您可以使用以下 jquery 选择器:

var selector = 'svg path[id="child_1_id"]';
$(selector).attr('fill', 'blue');

If your child ID is unique through the whole svg document, you could use the following jquery selector:

var selector = 'svg path[id="child_1_id"]';
$(selector).attr('fill', 'blue');
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文