Gibt es eine Möglichkeit, den Typ eines Elements in JavaScript zu testen?
Für die Antwort ist möglicherweise die Prototypbibliothek erforderlich oder nicht. Das folgende Setup verwendet jedoch die Bibliothek.
function(event) {
var element = event.element();
// if the element is an anchor
...
// if the element is a td
...
}
javascript
prototypejs
Casey Watson
quelle
quelle
element.nodeName.match(/\bTBODY\b/i)
oderelement.nodeName.toLowerCase() == 'tbody'
usw. verwendenVielleicht müssen Sie auch den Knotentyp überprüfen:
Bearbeiten: Der nodeType-Wert wurde korrigiert
quelle
text/html
element.tagName.toLowerCase() === 'a'
element.nodeName.toLowerCase()
wenn es möglich ist, dasselement
dies kein Element ist (z. B. wenn Sie dienodeType == 1
oben aufgeführte Prüfung nicht durchgeführt haben ). DieNode
Schnittstelle hatnodeName
. ZumElement
Beispiel ist es das gleiche wietagName
. Für andere Arten von Knoten sind es Dinge wie"#text"
oder"#document"
. Ich glaube, ich würde dennodeType
Scheck immer benutzen .node.tagName == 'DIV'
Roenving ist korrekt, ABER Sie müssen den Test ändern in:
weil nodeType of 3 tatsächlich ein Textknoten ist und nodeType of 1 ein HTML-Element ist. Siehe http://www.w3schools.com/Dom/dom_nodetype.asp
quelle
Normalerweise erhalte ich es vom Rückgabewert toString (). Es funktioniert in DOM-Elementen mit unterschiedlichem Zugriff:
Dann das relevante Stück:
Es funktioniert in Chrome, FF, Opera, Edge, IE9 + (im älteren IE wird "[Objekt Objekt]" zurückgegeben).
quelle
Obwohl die vorherigen Antworten perfekt funktionieren, möchte ich nur eine weitere Möglichkeit hinzufügen, bei der die Elemente auch über die von ihnen implementierte Schnittstelle klassifiziert werden können.
Informationen zu verfügbaren Schnittstellen finden Sie in W3 Org
Die Schnittstellenprüfung kann auf zwei Arten als
elem instanceof HTMLAnchorElement
oderelem.constructor.name == "HTMLAnchorElement"
beide Rückgaben durchgeführt werdentrue
quelle
Ich habe eine andere Möglichkeit, dasselbe zu testen.
quelle