2008-09-23 14 views

Antwort

20

jQuery prüft die nodeType-Eigenschaft. Sie hätten also:

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

Obwohl dies alle DOM-Objekte erkennen würde, nicht nur Elemente. Wenn Sie Elemente allein wollen, wäre das:

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

Großartig, wenn es gut genug für jQuery ist, sollte es für meine Bedürfnisse in Ordnung sein. Vielen Dank! –

4

Wahrscheinlich dieser hier:

node instanceof HTMLElement 

, die in den meisten Browsern funktionieren sollte. Andernfalls müssen Sie es entkensen (z. B. typeof x.nodeType != 'undefined')

+1

'HTMLElement' als Konstruktor-Funktion wird nicht von jedem Standard zugänglich sein definiert, und es ist nicht in IE vor Version 8. – bobince

+1

@bobince: HTMLElement ist in DOM Level 2 definiert. Dass IE7 und früher es nicht unterstützen, bedeutet nicht, dass es nicht standardisiert ist. Der Grund, warum Sie 'instanceof' nicht verwenden sollten, ist, dass es nicht funktioniert, wenn Sie Cross-Frame-Entwicklung machen. –

+0

Tatsächlich kann die Tatsache, dass es kreuzframeübergreifend nicht funktioniert, in manchen Fällen sogar von Vorteil sein: In der Regel benötigen fremde Knoten eine spezielle Behandlung (dh Importieren), damit sie nicht den gleichen Codepfad wie lokale Knoten verwenden können. –

0

Was

obj instanceof HTMLElement 
+1

Nicht sicher, warum das jemals ohne Erklärung heruntergeregelt wurde, aber das funktioniert auch und scheint zuverlässiger als eine magische Zahl. –

+3

Diese Antwort ist völlig überflüssig, da Armin das gleiche früher gepostet hat, und wie Bobinces Kommentar zu dieser Antwort zeigt, ist dies unzuverlässig. Meine Antwort ist nicht unzuverlässig, die "magische Zahl" ist [in der Spezifikation definiert] (http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-1950641247). – Jim

+1

Dies funktioniert nicht in Chrome, da HTMLElement eine Funktion ist – bjornl

Verwandte Themen