2010-10-21 39 views
3

我無法使外部加載的SVG按照我想要的方式與Keith Wood的SVG庫進行操作。無法使用選擇器與JQuery 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元素的樣式。我錯過了什麼?

+0

這是正常的,你的SVG了'child_1_id'&'child_2_id'但是你用'#child_id '在腳本中?它絕對不一樣... – Shikiryu 2010-10-21 14:38:19

+0

對不起。轉錄錯誤。我試圖運行的代碼是: – jonnyrichards 2010-10-21 17:20:49

+0

svg.style('g#parent_id> path#child_1_id {fill:blue}') – jonnyrichards 2010-10-21 17:21:05

回答

0

如果您的孩子ID是在整個SVG文件獨特的,你可以使用下面的jQuery選擇:

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