2011-09-22 60 views
4

我想選擇SVG中的最後一個路徑並將其刪除。我已經嘗試了各種方法,在純JavaScript和jQuery中,我似乎無法正確訪問SVG或其路徑。使用JavaScript選擇SVG和路徑元素

HTML:

$('svg#thesvg').empty(); 

我可以用看SVG的內容:

<div id="thesvgwrapper">  
    <svg id="thesvg"...><path ....></path><path ...></svg> 
</div> 

我可以通過清除SVG

var svgwrapper = $('#svgwrapper'); 
var svgcontents = $(svgwrapper).html(); 
alert(svgcontents); 

但是,我不能同樣選擇SVG並看到它的路徑內容...

我的目標是一樣的東西

$('#thesvg path:last').remove(); 

感謝您的幫助

+0

你能http://jsfiddle.net/的例子嗎? –

+0

看到我下面的評論。選擇最後的路徑實際上很容易使用jQuery,純JavaScript可能也會起作用。我的代碼中還有其他問題。謝謝。 – tuddy

回答

6

下面是純JavaScript可執行代碼:

var paths = svgDoc.getElementsByTagName("path"); 
var last_path = paths[paths.length - 1]; 
last_path.parentNode.removeChild(last_path); 
+1

原來,選擇最後一條路並不是實際上阻止了我......固定其他東西,它的工作。這個解決方案看起來不錯。我現在正在使用一些jquery,這已經足夠好了:'var svg = document.createElementNS(ns,'svg'); $('svg path:last-child')。remove();' – tuddy

2

我假設你正在使用SVG兼容的瀏覽器,如Firefox百萬。

自從我試圖通過jQuery來操作SVG已經有一段時間了。我記得我不願意使用SVG jQuery插件,但是沒有一個我在訪問DOM中的元素時遇到了一些問題。包括jQuery SVG插件允許我訪問這些元素,這樣可以幫助解決您遇到的問題。