Rolf b: Begriff gesucht: getElementById und querySelector

Beitrag lesen

Hab heute nur gemerkt, dass selbst das geht:

      var tabs = document.querySelector('[aria-selected="true"]');
      tabs.setAttribute('aria-selected', false);

Wahnsinn! (Und wieder ein paar Wiki-Seiten, die aktualisiert, erweitert, verbessert werden müssen.)

Hm? querySelector liefert das erste Element, das ein aria-selected="true" Attribut hat. Und setAttribute manipuliert Attributwerte. Die Kombination steht nicht im Wiki, aber die drei Komponenten schon.

Nur deine Namensgebung finde ich irreführend, du schreibst "var tabs = ..." - querySelector liefert aber immer nur ein Element, die Variable sollte also eher selectedTab heißen. Wenn Du davon ausgehst, dass mehrere Elemente ein aria-selected="true" haben und alle de-selektieren willst, brauchst Du querySelectorAll und eine Schleife, weil NodeList keine jQuery-artige setAttribute Methode hat.

Im konkreten Fall sollte es aber wohl nie mehr als einen Treffer geben, ich würde annehmen, dass Tabs nicht multiselectable sind (grundsätzlich wäre ein Fall mit mehreren aria-selected="true" Widgets aber wohl denkbar, wenn ich die Spec richtig lese).

Oder habe ich die besondere Besonderheit deines Snippets übersehen?

Rolf