测试object是否是DOM元素

时间:2011-09-02 03:59:25

标签: javascript jquery

JavaScript函数接收一个可能是DOM元素的参数。如何确保参数是DOM元素而不是另一个对象?

4 个答案:

答案 0 :(得分:2)

对于现代浏览器,我认为它类似于

e instanceof Element
e instanceof Text // text node

答案 1 :(得分:1)

试试这个。

检查它是否是DOM对象。

if(arg.tagName){ 
   //Its a dom element
}

检查它是否是jQuery对象

if(arg.jquery){
   //Its a jQuery object
}

正在使用 demo

或者你可以尝试这个函数,如果作为参数传递的元素是一个DOM元素,它将返回true。

function isElement(o){
  return (
    typeof HTMLElement === "object" ? o instanceof HTMLElement :
    typeof o === "object" && o.nodeType === 1 && typeof o.nodeName==="string"
);

答案 2 :(得分:1)

如果 el 是DOM的一部分,

el instanceof Node将为您提供trueel instanceof Element - true如果它也是元素。

答案 3 :(得分:0)

只需检查具有innerHTML功能的对象。

例如:

function (obj ) {
    if(!!obj.innerHTML) // force the function to be boolean 
    {
         // do something here if it was a html element 
    }
    else {
         // do stuff here if it wasn't
    }



}