JavaScript函数接收一个可能是DOM元素的参数。如何确保参数是DOM元素而不是另一个对象?
答案 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 instanceof Node
将为您提供true
。
el 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
}
}