Lieber Gunnar,
vielen Dank für Deine Mühen beim Konvertieren.
Wenn ich mir allerdings diesen Schreibaufwand anschaue, als Beispiel sei nur der Setter $element.attr("name", "value")
im Vergleich zu element.setAttribute("name", "value")
, und der Getter $element.attr("name")
im Vergleich zu element.getAttribute("name")
genannt.
Das Mantra von jQuery war (neben dem Ausbügeln von Browserunterschieden) "write less do more". Das sehe ich hier ganz deutlich: Mit jQuery schreibt man weniger Code-Fülle, die im Endeffekt zu lesbarerem weil weniger geblähtem Code führt.
Übrigens: Das
aria-label
-Attribut macht keinen Sinn, wenn da dasselbe steht wie im Elementinhalt.
OK, das habe ich nicht gewusst. Und ursprünglich hatte ich einen Link anstelle eines Buttons verwenden wollen. Aber selbst dieser Unterschied ist wohl irrelevant hinslichtlich aria-label
.
Das
title
-Attribut macht keinen Sinn, auch wenn da etwas anderes drinstünde.
Mit Verlaub: doch! Wenn jemand mit der Maus über dem Button hovert, dann will der vielleicht wissen, was der bewirkt. Das kann ein Tooltip mit dem Inhalt des title
-Attributs vermitteln. In diesem Kontext ist nämlich die Beschriftung des Buttons ausgeblendet. Man "sieht" nur noch ein Plus- oder Minus-Zeichen.
Und „iteriert es wirklich über alle gefundenen Elemente in der gleichen Art?“ legt nahe, dass du sowas im Sinn hast:
<nav id="hamburger-navigation"> <div> <ul>…</ul> </div> <div> <ul>…</ul> </div> </nav>
Nö. Ich verschachtele <article><h2/><ul/></article>
. Aber Du hast insofern Recht, als document.querySelectorAll
alles das findet, was ich brauche. Nur muss ich eben ein extra forEach
über die NodeList laufen lassen, anstatt mit $.append()
dieses implizit zu tun.
VanillaJS: Write more do less. Deswegen noch immer jQuery.
Liebe Grüße,
Felix Riesterer.