Qual è il modo migliore per rilevare se un determinato oggetto Javascript è un elemento DOM? [duplicare]
-
02-07-2019 - |
Domanda
Questa domanda ha già una risposta qui:
Diciamo ad esempio che stavo scrivendo una funzione progettata per accettare più tipi di argomenti:
var overloaded = function (arg) {
if (is_dom_element(arg)) {
// Code for DOM Element argument...
}
};
Qual è il modo migliore per implementare is_dom_element
in modo che funzioni in modo cross-browser abbastanza accurato?
Soluzione
jQuery controlla la proprietà nodeType. Quindi avresti:
var overloaded = function (arg) {
if (arg.nodeType) {
// Code for DOM Element argument...
}
};
Sebbene ciò rilevi tutti gli oggetti DOM, non solo gli elementi. Se vuoi elementi da solo, sarebbe:
var overloaded = function (arg) {
if (arg.nodeType && arg.nodeType == 1) {
// Code for DOM Element argument...
}
};
Altri suggerimenti
Probabilmente questo qui:
node instanceof HTMLElement
Dovrebbe funzionare nella maggior parte dei browser. Altrimenti devi digitarlo (es. typeof x.nodeType! = 'Undefined'
)
Che dire di
obj instanceof HTMLElement
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow