Qual è il modo migliore per rilevare se un determinato oggetto Javascript è un elemento DOM? [duplicare]

StackOverflow https://stackoverflow.com/questions/120262

  •  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?

È stato utile?

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
scroll top