Shadow of the Vampire: jQuery - Element mit Klasse zuvor finden

Beitrag lesen

Hallo ebody

if (event.target.nodeName === 'BUTTON') {}

if (event.target.type === 'button') {}

if (event.target.tagName === 'BUTTON') {}

Oder wären die anderen beiden Varianten auch ok und hätten keine Vor- oder Nachteile?

Die Eigenschaften nodeName und tagName sind gleichwertig. Letztere ist nur für Elemente definiert und somit spezieller. Die Verwendung von tagName macht den Code also ein klein wenig ausdrucksstärker.

Die Eigenschaft type reflektiert das entsprechende Attribut des button-Elements. Während deine Bedingungen mit nodeName und tagName für alle Buttons true ergeben, passiert das bei der Prüfung mit type nur dann, wenn der Button auch tatsächlich den Typ button hat.

Wenn du wissen willst, ob die Eigenschaft target einen Button referenziert, kannst du das auch mit dem Operator instanceof prüfen:

if (event.target instanceof HTMLButtonElement) {}

Viele Grüße