Gunnar Bittersmann: Welche Pseudoklasse benutze für meinen Link

Beitrag lesen

@@ liebewinter

function setAriaCurrentPage(c,i,f){

Wie schon angesprochen wurde: das ist schlechter Stil. Lokale Variablen sollten lokal deklariert werden. Die Funktion sollte keine Parameter erwarten.

Oder doch einen: den URL der aktuellen Seite: function setAriaCurrentPage(currentURL).

    f=http://localhost/Beispiel-1.php;

Das auf der rechten Seite soll ein String sein, muss also in Anführungszeichen[1] stehen.

Und verwende sprechende Valiablenbezeichner. Bspw.

const currentURL = 'http://localhost/Beispiel-1.php';

(Wenn der Code auch in Uralt-Browsern laufen soll: var statt const.)

    c=document.querySelectorAll("a[href]");

Das ist völlig unnötig. Mit document.links steht bereits eine NodeList mit allen Links (incl. möglicher area-Elemente) zur Verfügung.

        if(c[i].getAttribute("href") == f){

Nicht die beste Idee. getAttribute("href") liefert genau die Form, die im href-Attribut angegeben wurde. Besser verwendet man die href-Eigenschaft, die den vollständigen URL liefert – egal ob der Link relativ oder absolut angegeben wurde. Wenn wir aktuell auf https://example.net sind:

| HTML | .getAttribute("href") | .href |---| | <a href="foo"> | "foo" | "https://example.net/foo" | <a href="/foo"> | "/foo" | "https://example.net/foo" | <a href="//example.net/foo"> | "//example.net/foo" | "https://example.net/foo" | <a href="https://example.net/foo"> | "https://example.net/foo" | "https://example.net/foo"

Die Funktion könnte also so aussehen:

function setAriaCurrentPage(currentURL)
{
	for (let i = 0, i < document.links.length; i++)
	{
		if (document.links[i].href === currentURL)
		{
			document.links[i].setAttribute("aria-current", "page");
			document.links[i].setAttribute("tabindex", "0");
			document.links[i].removeAttribute("href");
		}
	}
}

(Wenn der Code auch in Uralt-Browsern laufen soll: var statt let.)

Aufruf:

setAriaCurrentPage("http://localhost/Beispiel-1.php");

LLAP 🖖

--
„Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann

  1. das, was in Programmiersprachen so „Anführungszeichen“ genannt wird: ' bzw. " ↩︎

0 58

Welche Pseudoklasse benutze für meinen Link

liebewinter
  • css
  • meinung
  1. 2
    Rolf B
    1. 0
      liebewinter
    2. 1
      Gunnar Bittersmann
      • css
      • html
      1. 0
        liebewinter
      2. 0
        liebewinter
        1. 0
          Matthias Apsel
          1. 0
            liebewinter
            1. 0
              ursus contionabundo
            2. 0
              Rolf B
              1. 0
                liebewinter
                1. 0
                  Rolf B
                  1. 0
                    liebewinter
  2. -1
    ursus contionabundo
    1. 0
      Rolf B
      1. 0
        ursus contionabundo
        1. 0
          Rolf B
          1. 0
            ursus contionabundo
        2. 1
          Rolf B
          1. 0
            ursus contionabundo
        3. 1
          Gunnar Bittersmann
          1. 0
            ursus contionabundo
        4. 1
          Matthias Apsel
          1. 0
            ursus contionabundo
    2. 0
      beatovich
      1. 0
        Matthias Apsel
        1. 0
          beatovich
          1. 0
            Matthias Apsel
            1. 0
              beatovich
        2. 0
          liebewinter
          1. 1
            Gunnar Bittersmann
            • javascript
            1. 0
              Gunnar Bittersmann
            2. 0
              beatovich
              1. 0
                Gunnar Bittersmann
                1. 0
                  beatovich
            3. 0
              liebewinter
              1. 0
                Gunnar Bittersmann
                • css
                • html
                • javascript
            4. 0
              liebewinter
              1. 0
                Rolf B
                1. 0
                  liebewinter
                  1. 0
                    Rolf B
                    1. 0
                      liebewinter
                      1. 0
                        Rolf B
                        1. 0
                          liebewinter
                        2. 0
                          Gunnar Bittersmann
                          • html
                          • php
                        3. 0
                          liebewinter
                    2. 0
                      Gunnar Bittersmann
                      • html
                      1. 0
                        Tabellenkalk
                2. 0
                  Gunnar Bittersmann
      2. 0
        Rolf B
        1. 0
          beatovich
          1. 0
            Rolf B
          2. 0
            beatovich
            1. 2
              Orlok
              • programmiertechnik
            2. 1
              Rolf B
              1. 0
                beatovich
                1. 0
                  Rolf B
                2. 0
                  Matthias Apsel