Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript SVG上的JS——获取元素的innerHTML_Javascript_Xml_Svg - Fatal编程技术网

Javascript SVG上的JS——获取元素的innerHTML

Javascript SVG上的JS——获取元素的innerHTML,javascript,xml,svg,Javascript,Xml,Svg,我想从SVG文件中提取一些数据。我知道SVG是XML,所以我认为用JS把数据哄出来会很容易 所以,我想从SVG中提取一组文本。所以,我启动了chrome的JS控制台,并尝试做一些事情。我需要获取数组中的所有tspan元素,提取它们的文本,并对其进行分类 我指的是现在 因此,我使用a=document.getElementsByTagName('tspan')。现在,我尝试a[20].innerHTML,并获得未定义的。合理的;它不是HTML,iirc innerHTML无论如何都是非标准的 然后

我想从SVG文件中提取一些数据。我知道SVG是XML,所以我认为用JS把数据哄出来会很容易

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

我指的是现在

因此,我使用
a=document.getElementsByTagName('tspan')
。现在,我尝试
a[20].innerHTML
,并获得
未定义的
。合理的;它不是HTML,iirc innerHTML无论如何都是非标准的

然后我尝试
a[20].childNodes[0]
并得到
“ELF”
。好吧,这就是我想要的。但是,由于某些原因,该对象被视为字符串,但无法转换为字符串。如果我尝试转换它(这样我可以使用
matches()
indexOf()
),我会得到
“[对象文本]”
。深入研究
Text.prototype
并没有帮助——我找不到任何将其转换为字符串的函数


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

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

var content = a[20].textContent;
这不能替代SVG中的
innerHTML
,但只要您只想提取文本而不想添加标记,它就可以工作。

在控制台中检查时,A看起来像字符串,但它不是字符串。对于字符串,您需要。尝试:


此外,出于某种原因,原型显示,人们通常在HTML中看到的某些其他内置函数(事实上,正是我需要的函数)都丢失了。太好了--现在W3C正在密谋反对我…顺便问一下,索引20有什么意义?这个索引值永远不会是我假设的任何其他数字?@NateNeuhaus 20只是指给定的OPs代码。此处应选择第20个
元素。可以是任何其他的。主要方面是以后要使用的属性(
textContent
)。
document.querySelectorAll('tspan')[20].childNodes[0].nodeValue