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

Posted

技术标签:

【中文标题】document.createElement("svg") instanceof SVGElement 为 false【英文标题】:document.createElement("svg") instanceof SVGElement is false 【发布时间】:2014-08-02 05:19:40 【问题描述】:

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

【问题讨论】:

【参考方案1】:

在任何上下文中创建一个像<svg> 这样的元素并且凭空创建一个未知元素。如果要创建 SVG 元素,请使用:

var a = document.createElementNS("http://www.w3.org/2000/svg", "svg");

现在如果你比较一下:

var result = a instanceof SVGElement;

result 将是 true

查看此 JSFiddle

中的工作示例

【讨论】:

jQuery 用户注意事项:我发现如果我通过 jQuery 检索一个 svg 元素,例如 $('svg'),它就不是 SVGElement。您必须获取 dom 元素 $('svg').get(0) 才能使 instanceof SVGElement 为真。

以上是关于document.createElement("svg") instanceof SVGElement 为 false的主要内容,如果未能解决你的问题,请参考以下文章

通过 innerHTML 和 document.createElement 创建 HTML 有啥区别? [复制]

js中的createElement(tagName)疑问

js 的document.createElement(img)问题

怎么清除用document.createElement("a")创建的节点

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

怎么清除用document.createElement("a")创建的节点