使用getAttribute

时间:2019-06-12 03:05:04

标签: javascript dom svg

我已经在JavaScript函数中检索了值“ [object SVGCircleElement]”,并希望对此进行解压缩,以便获取有关其ID的更多信息。 它来自我拖拉的香草可拖动函数,因此在这里并不需要它,关键是在endDrag(mouseup)事件上,我有一个包含变量[object SVGCircleElement]

的函数。
function endDrag(evt){
alert(selectedElement);
selectedElement = false;
}

这给了我[object SVGCircleElement] 例如,如何获取其ID? 谢谢

也-[object SVGSVGElement]。当在可拖动元素上单击鼠标时,此对象将传递给函数。 dom中被拖动的元素具有ID和cy,cx和fill等值,我也想检索这些值。

编辑- 多亏了以下答案,我可以使用变量selectedElement和

来获取[object SVGCircleElement]上的信息
selectedElement.id gets ID
selectedElement.getAttribute("cx")`enter code here` gets the cx (as this is a svg circle) 

1 个答案:

答案 0 :(得分:2)

该字符串只是实际js对象的字符串化。

使用console.log()而不是alert()可以看到它。

该对象将公开很多属性,此处不是列出所有属性的地方。但是对于id,您只需访问其.id属性即可。

但是请注意,对于SVGElement,某些属性实际上是SVGAnimatedStrings,您需要从中访问它们的.baseVal属性,或者您可能只想调用Element.getAttribute()

const selectedElement = document.querySelector('circle');

console.log('toString', selectedElement.toString());

console.log('.id', selectedElement.id);
console.log('.cx', selectedElement.cx); 
console.log('.getAttribute("cx")', selectedElement.getAttribute("cx")); 
<svg viewBox="0 0 100 100">
  <circle id="my-circle" cx="50" cy="50" r="50"/>
</svg>