如何检查变量是否是节点?

时间:2013-10-27 00:19:21

标签: javascript nodes typechecking dom-node

我想知道变量myVar是否是一个节点。

我可以查看myVar.nodeType,但我可能会被{nodeType:1}

愚弄

然后,我想知道我是否可以做像

这样的事情
myVar instanceof Node

修改

有趣的是,似乎有一个Node构造函数,所以instanceof Node确实有效!

如果我的猜测在问之前我应该​​试过......


请不要将我的问题标记为Check if variable is a valid node element的副本,因为此另一个问题假定myVar是一个节点或为空。但我的问题并没有假设。

1 个答案:

答案 0 :(得分:3)

在不同的浏览器中尝试window.document instanceof Node。它在IE11,GC30,FF24和Opera17中返回true,因此它也适用于其他Node

在IE8等旧版浏览器中,Node界面为undefined。我为HTMLDivElement个节点测试了几个interfacesdiv,但这些节点太具体了,因此必须将它们||转换为非常长的逻辑表达式。在IE8中最常用的接口是Elementwindow.document.body,其子节点是Element的实例。有趣的是,window.document不是Element(它是HTMLDocument)。