Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Change SVG path with JavaScript

Here is the SVG path:

<svg xmlns="http://www.w3.org/2000/svg" version="1.1" id="sss" viewBox="0 0 500 300">   <path id="s3" d="M 10,90 Q 100,15 200,70 Z"/> </svg> 

How can I change the d value?

Why does alert(document.getElementById('s3').d); give me undefined?

like image 631
Victor Marchuk Avatar asked Jul 25 '11 09:07

Victor Marchuk


People also ask

How do you change SVG fill with JS?

To change SVG image color with JavaScript, we can set the fill attribute value. const svgElement = document. getElementById("svg"); svgElement.

Can SVG integrate with JavaScript?

Since SVG images can be inlined in HTML, we can manipulate them with JavaScript. This means that we can animate parts of an image from code, make it interactive, or turn things around and generate graphics from data.

Can I add class to SVG path?

Just the same as you would add a class to an html element, by adding a class attribute. Though to be able to target that with css the svg code must be inserted into the document in-line, it can't be referenced by an <img> tag for example.


1 Answers

Attributes can be set another way:

alert(document.getElementById('s3').getAttribute('d')); 

That seems to work. To set use setAttribute.

There is a difference between attributes and properties. Attributes are set like <elem attr='value'> and properties are dynamically set.

For example, an input element will not change its attribute when entering something in it. The property, however, will change. So .value would return the correct result, whereas .getAttribute('value') would return the initial value as set with value="something".

In your case, it's an explicit attribute and not a property. Hence, .d does not work whilst .getAttribute('d') does.

http://jsfiddle.net/Kdp4v/

like image 50
pimvdb Avatar answered Sep 29 '22 13:09

pimvdb