关于SVG的JS - 获取元素的innerHTML

Man*_*rth 8 javascript xml svg

我想从SVG文件中提取一些数据.我知道SVG是XML,所以我认为用JS哄骗数据会非常容易.

所以,我想从SVG中提取一堆文本.所以,我启动了chrome的JS控制台,并试着做一些事情.我需要获取tspan数组中的所有元素,提取文本并对其进行分类.

我指的是http://upload.wikimedia.org/wikipedia/commons/e/eb/Light_spectrum.svg.

所以,我用a = document.getElementsByTagName('tspan').现在,我尝试a[20].innerHTML,并得到undefined.合理; 它不是HTML和iirc innerHTML无论如何都是非标准的.

然后我试着a[20].childNodes[0]"ELF".好的,那就是我想要的.但是,由于某种原因,此对象被视为字符串,但不能转换为一个.如果我尝试转换它(以便我可以使用matches()和它一样的东西indexOf()),我会得到"[object Text]".深入研究Text.prototype并没有帮助 - 我找不到任何将其转换为字符串的函数.

那么如何通过JS获取SVG对象的innerHTML呢?

Sir*_*rko 9

选择您拥有的元素,但使用以下内容访问其文本:

var content = a[20].textContent;
Run Code Online (Sandbox Code Playgroud)

这不是innerHTMLSVG内部的替代品,但只要你只想提取文本而没有标记,它就会起作用.