Я пишу часть инфраструктуры, которая должна применяться по-разному к элементам HTML по сравнению с элементами SVG. Учитывая DOM node, как я могу определить, является ли это элементом SVG или HTML?
Как определить, является ли элемент DOM HTML или SVG?
Ответ 1
Вы можете попробовать это ( Пример)
if(document.getElementById("el") instanceof SVGElement) {
// svg
}
Обратите внимание, что сам элемент <svg>
- это элемент HTML, содержащий элементы SVG, что означает, что, возможно, удивительно, что элемент HTML <svg>
не является элементом SVG, следовательно:
console.log(document.createElement("svg") instanceof SVGElement)) // => false
Ответ 2
Я не уверен, насколько он совместим с перекрестным браузером, но я пробивался через свойства DOM и видел ownerSVGElement
, который кажется многообещающим?
Вот что я обсуждал: http://jsbin.com/uMIronal/4/edit?html,js,output