JS SVG-immer innerHTML von einem element

Wollte ich daraus einige Daten aus einer SVG-Datei. Ich weiß, dass SVG auf XML, so dass ich dachte, es wäre ziemlich einfach zu coax werden die Daten mit JS.

So, ich wollte, um eine Reihe von text extrahiert aus einer SVG. So feuerte ich chrome JS-Konsole, und habe versucht, einige Sachen. Ich brauchte, um alle tspan Elemente in einem array extrahieren, deren text und zu kategorisieren.

Ich beziehe mich auf http://upload.wikimedia.org/wikipedia/commons/e/eb/Light_spectrum.svg im moment.

So, ich benutze a = document.getElementsByTagName('tspan'). Nun, ich versuche a[20].innerHTML, und erhalten Sie undefined. Vernünftig; es ist nicht HTML und iirc innerHTML ist standardgemäß sowieso.

Dann versuche ich a[20].childNodes[0] und bekommen "ELF". OK, das ist was ich wollte. Aber aus irgendeinem Grund, das Objekt wird behandelt wie ein string, aber nicht in eins umgewandelt. Wenn ich versuche es zu konvertieren (so, dass ich Sachen wie matches() und indexOf()), bekomme ich "[object Text]". Eintauchen in Text.prototype nicht helfen-ich finde keine Funktion, die wandelt es in eine Zeichenfolge.

Also, wie kann man das innerHTML von einem SVG-Objekt durch JS?

  • Auch, für einige Grund, der Prototyp zeigt, dass bestimmte andere eingebaute Funktionen, die man normalerweise sieht im HTML-Format (in der Tat, genau das, was ich brauche) fehlen. Toll-jetzt ist das W3C ist die Verschwörung gegen mich...
InformationsquelleAutor Manishearth | 2012-03-07
Schreibe einen Kommentar