Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Selecting SVG and path elements with JavaScript

Tags:

javascript

svg

I would like to select the last path in an SVG and remove it. I've tried a variety of methods, in pure javascript and in jquery and I don't seem to be able to access the SVG properly or its paths.

HTML:

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

I CAN clear the SVG using:

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

I CAN see the SVG's contents using:

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

However, I CANNOT similarly select the SVG and see it's path contents...

my goal is something like

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

thanks a million for any help

like image 229
tuddy Avatar asked Feb 22 '23 21:02

tuddy


2 Answers

Here's executable code in pure JavaScript:

var paths = svgDoc.getElementsByTagName("path");
var last_path = paths[paths.length - 1];
last_path.parentNode.removeChild(last_path);
like image 93
Cameron Laird Avatar answered Feb 25 '23 11:02

Cameron Laird


I'm assuming that you're using an SVG compatible browser, such as Firefox.

It's been a while since I tried to manipulate SVG via jQuery. I remember that I was reluctant to use an SVG jQuery plugin, but without one I was having some problems accessing the elements in the DOM. Including the jQuery SVG plugin allowed me to access the elements so including it might help with the problems that you're having.

like image 25
Dave F Avatar answered Feb 25 '23 10:02

Dave F