JavaScript测试变量是否是可能的DOM元素

时间:2016-10-10 08:46:41

标签: javascript dom element instanceof typeof

这个问题之前有过一些问题,但是(a)很久以前和(b)过去的一些答案包括jQuery。

对于当前浏览器(包括IE> = 8),测试变量是否为DOM元素的最简单可靠方法是什么?

我不关心元素当前是否在DOM中。我对变量是否包含有效的元素对象更感兴趣。

我正在编写一个需要在文档元素和字符串之间进行选择的函数。以下是我的看法:

function doit(element) {
    if (element instanceof Element) {
        //  document element
    } else if (typeof element == 'string') {
        //  string
    }
    //  else out of luck
}

这里使用了instanceof作为元素,typeof作为字符串,拼凑了我在别处读到的内容。

在今天的浏览器中(如果你包含IE,昨天就是这样),这是最有效/正确的方法吗?

由于

1 个答案:

答案 0 :(得分:-1)

你可以反过来检查它,如:

function doit(element) {
    if(typeof element === 'string') { // to be save -> always use type check in js (===)
        //  string
    }
    else {
        //  assuming it is a document element
    }
}

如果你真的想在HTML元素上查看它,你也可以依赖this post

剧透:... instanceof HTMLElement