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