Подтвердить что ты не робот

Как определить, является ли элемент DOM HTML или SVG?

Я пишу часть инфраструктуры, которая должна применяться по-разному к элементам HTML по сравнению с элементами SVG. Учитывая DOM node, как я могу определить, является ли это элементом SVG или HTML?

4b9b3361

Ответ 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