document.createElement("svg")instanceof SVGElement为false

Ric*_*dor 5 html javascript svg dom google-chrome

当我document.createElement("svg") instanceof SVGElement在chrome中尝试代码时它会返回false.为什么?

hel*_*cha 9

创建一个<svg>不在任何环境中并且凭空创建的元素将创建一个未知元素.如果要创建SVG元素,请使用:

var a = document.createElementNS("http://www.w3.org/2000/svg", "svg");
Run Code Online (Sandbox Code Playgroud)

现在,如果你比较:

var result = a instanceof SVGElement;
Run Code Online (Sandbox Code Playgroud)

resulttrue.

请参阅此JSFiddle中的一个工作示例

  • jQuery用户的注释:我发现如果我通过jQuery检索svg元素,例如`$('svg')`,它就不会是SVGElement.你必须得到dom元素`$('svg').get(0)`以使`instanceof SVGElement`为真. (3认同)