3 ответов:
Атрибуты можно задать другим способом:
alert(document.getElementById('s3').getAttribute('d'));Это, кажется, работает. Для установки используйте
Существует разница между атрибутами и свойствами. Атрибуты задаются какsetAttribute.<elem attr='value'>, а свойства-динамически.Например, элемент ввода не изменит свой атрибут при вводе в него чего-либо. Однако это свойство изменится. Таким образом,
.valueвернет правильный результат, тогда как.getAttribute('value')вернет начальное значение, заданное с помощьюvalue="something".В вашем дело в том, что это явный атрибут, а не свойство. Следовательно,
.dне работает, в то время как.getAttribute('d')работает.
Интерфейс
SVGPathElementне имеет свойстваd:
- http://objjob.phrogz.net/svg/object/101
- http://www.w3.org/TR/SVG11/paths.html#InterfaceSVGPathElement
Как уже говорили другие, вы можете получить доступ к данным в виде большой уродливой строки с помощью стандартного метода DOM 2 Core, доступного для всех XML-приложений,
myPath.getAttribute('d').обратите внимание, что в то время как SVG элементы находятся в пространстве имен SVG, атрибуты SVG не являются; Вы должны не использовать
myPath.getAttributeNS('http://www.w3.org/2000/svg','d').Однако, если вы хотите объектно-ориентированное представление данных пути, вам нужен один из следующих атрибутов:
Все эти атрибуты дают вам
SVGPathSegList, который является упорядоченным списком (не массивом)SVGPathSegобъекты, которые можно перечислить с помощьюnumberOfItemsиgetItem().Обратите внимание, что
SVGPathSegявляется базовый интерфейс наследуется более конкретными объектами, из которых вы возвращаетесь как может выглядеть использование:var segments = myPath.pathSegList; for (var i=0,len=segments.numberOfItems;i<len;++i){ var segment = segments.getItem(i); switch(segment.pathSegType){ case SVGPathSeg.PATHSEG_LINETO_ABS: // segment is a SVGPathSegLinetoAbs object console.log( "Absolute Line To", segment.x, segment.y ); break; case SVGPathSeg.PATHSEG_CLOSEPATH: // ... break; // see http://www.w3.org/TR/SVG11/paths.html#DOMInterfaces for constants } }
Comments