Was ist der beste Weg, um herauszufinden, ob ein bestimmtes JavaScript-Objekt ein DOM-Element ist? [Duplikat]

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

  •  02-07-2019
  •  | 
  •  

Frage

    

Diese Frage bereits eine Antwort hier:

         

Sagen Sie zum Beispiel ich eine Funktion schreiben, die entworfen wurde, mehrere Argument Typen:

var overloaded = function (arg) {
    if (is_dom_element(arg)) {
        // Code for DOM Element argument...
    }
};

Was ist der beste Weg, is_dom_element zu implementieren, so dass es funktioniert in einem Cross-Browser, ziemlich genaue Art und Weise?

War es hilfreich?

Lösung

jQuery überprüft die nodeType Eigenschaft. So müssten Sie:

var overloaded = function (arg) {
    if (arg.nodeType) {
        // Code for DOM Element argument...
    }
};

Obwohl diese alle DOM-Objekte erkennen würde, nicht nur Elemente. Wenn Sie Elemente allein wollen, dass sein würde:

var overloaded = function (arg) {
    if (arg.nodeType && arg.nodeType == 1) {
        // Code for DOM Element argument...
    }
};

Andere Tipps

Wahrscheinlich diesen hier:

node instanceof HTMLElement

Das sollte in den meisten Browsern funktionieren. Ansonsten haben Sie Ente-Typ es (zB. typeof x.nodeType != 'undefined')

Was ist

obj instanceof HTMLElement
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top