Change SVG path with JavaScript

Attributes can be set another way, using setAttribute:

document.getElementById('s3').setAttribute('d', "M 10,90 Q 100,15 200,70 Z");

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

That seems to work.

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/

Leave a Comment

tech