Ich brauche eine Möglichkeit, um den Typ eines HTML-Elements in JavaScript zu bestimmen. Es hat die ID, aber das Element selbst könnte ein Div, ein Formularfeld, ein Fieldset usw. sein. Wie kann ich das erreichen?Wie kann ich den Typ eines HTML-Elements in JavaScript bestimmen?
Antwort
nodeName
ist das Attribut, das Sie suchen. Zum Beispiel:
var elt = document.getElementById('foo');
console.log(elt.nodeName);
Beachten Sie, dass nodeName
kehrt der Elementname und ohne die spitzen Klammern aktiviert, was bedeutet, dass, wenn Sie wollen, zu überprüfen, ob ein Element ein <div>
Element ist, dass Sie es tun könnte wie folgt:
elt.nodeName == "DIV"
Während dies würden Sie nicht die erwarteten Ergebnisse geben:
elt.nodeName == "<div>"
Was ist mit element.tagName
?
Siehe auch tagName
docs on MDN.
nach Zeitstempel schlagen Sie mich um weniger als 1 Sekunde! – eyelidlessness
Ich schaffte es sogar, etwas fremdes Englisch einzuwerfen. Crikey! –
Von QuirksMode: Mein Rat ist nicht, TagName überhaupt zu verwenden. nodeName enthält alle Funktionalitäten von tagName plus ein paar mehr. Daher ist KnotenName immer die bessere Wahl. – bdukes
Ich empfehle es wie folgt: if (elt.nodeName.toLowerCase() === "div") {...} Auf diese Weise wird es aus irgendeinem Grund nicht mehr in Großbuchstaben (Kleinbuchstaben) zurückgegeben oder gemischt), Sie müssen es nicht ändern und dieser Code wird immer noch gut funktionieren. – TheCuBeMan
Als Reaktion auf @TheCuBeMan müssen Sie mit toLowerCase() auch sicherstellen, dass nodeName existiert (wenn es überhaupt möglich ist, ist elt kein Element): 'if (elt.nodeName && elt.nodeName.toLowerCase () === 'div') {...} ' –