What's the best way to detect if a given Javascript object is a DOM Element? [duplicate]
-
02-07-2019 - |
Question
This question already has an answer here:
Say for instance I was writing a function that was designed to accept multiple argument types:
var overloaded = function (arg) {
if (is_dom_element(arg)) {
// Code for DOM Element argument...
}
};
What's the best way to implement is_dom_element
so that it works in a cross-browser, fairly accurate way?
Solution
jQuery checks the nodeType property. So you would have:
var overloaded = function (arg) {
if (arg.nodeType) {
// Code for DOM Element argument...
}
};
Although this would detect all DOM objects, not just elements. If you want elements alone, that would be:
var overloaded = function (arg) {
if (arg.nodeType && arg.nodeType == 1) {
// Code for DOM Element argument...
}
};
OTHER TIPS
Probably this one here:
node instanceof HTMLElement
That should work in most browsers. Otherwise you have to duck-type it (eg. typeof x.nodeType != 'undefined'
)
What about
obj instanceof HTMLElement
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow