2016-06-16 10 views
0

Ich habe innerhalb eines Arrays an mir vorbei zu einer Funktion das folgende Objekt wird:Ist es möglich, spezifische Attributform ein Array von Objekten in Javascript zu erhalten?

[ { id: 'WA1WA1WAbWA2WAaWAbWA9WA6-WAdWA2WAaWAd-4WAbWAcWA3-WAbWA3WA7WAa-WAcWAbWA8WA9WAcWA9WA9WA9WA3WA3WA3WA9', 
obj: '<svg data="BusinessProductFigure" x="484.171875" y="123" id="WA1WA1WAbWA2WAaWAbWA9WA6-WAdWA2WAaWAd-4WAbWAcWA3-WAbWA3WA7WAa- WAcWAbWA8WA9WAcWA9WA9WA9WA3WA3WA3WA9" 
xmlns="http://www.w3.org/2000/svg" version="1.1"><rect x="4" y="4" 
width="60" height="14" fill="rgb(299,299,162)" stroke-linejoin="round" 
stroke="rgb(299,299,162)" stroke-width="1"/></svg>' } ] 

Ist ist möglich, die X- und Y-Wert in getrennten Variablen zu erhalten, die innerhalb des SVG-Tag sind? Gibt es irgendwelche Bedingungen oder Trennzeichen, die irgendwie verwendet werden können?

+0

Verwenden [DOMParser] (https://developer.mozilla.org/en/docs/Web/API/DOMParser), um es zu analysieren und dann die Werte aus dem DOM zu lesen. –

+0

@RobertLongson Ich habe das Dokument, aber wie kann ich jetzt auf einzelne Variablen zugreifen? – Arihant

+0

Ich habe es herausgefunden. Habe einfach doc.getElementsByTagName ["svg"]. GetAttribute ("x"); Danke vielmals! – Arihant

Antwort

1

Verwenden DOMParser etwa so:

var x = [ { id: 'WA...', 
 
      obj: '<svg data="BusinessProductFigure" x="484.171875" y="123" id="WA..." xmlns="http://www.w3.org/2000/svg" version="1.1"><rect x="4" y="4" width="60" height="14" fill="rgb(299,299,162)" stroke-linejoin="round" stroke="rgb(299,299,162)" stroke-width="1"/></svg>' } ] 
 
      
 
var dom = new DOMParser().parseFromString(x[0].obj, 'image/svg+xml'); 
 

 
alert(dom.documentElement.getAttribute("x"));

3

var arr = [{ 
 
    id: 'JKIU', 
 
    obj: '<svg data="BusinessProductFigure" x="484.171875" y="123" id="FRRR" xmlns="http://www.w3.org/2000/svg" version="1.1" > <rect x="4" y="4" width="60" height="14" fill="rgb(299,299,162)" stroke-linejoin="round" stroke="rgb(299,299,162)" stroke-width="1"/></svg>' 
 
}]; 
 

 
var div = document.createElement('div'); 
 

 
div.innerHTML = arr[0].obj; 
 

 
// var svg = div.querySelector('svg'); 
 
var svg = div.firstChild; 
 

 
var x = svg.getAttribute('x'); 
 
var y = svg.getAttribute('y'); 
 

 
console.log(x, y);

+0

Anstelle von 'querySelector' könnten Sie einfach' firstChild' – 4castle

+0

@ 4castle ok ill update thanks machen – DININDU