Damian: getElementsByTagName: Unterauswahl

Hallo,

ich wähle per document.getElementsByTagName("a") in einem Script alle Link-Elemente der Seite aus.
Nun möchte ich aber stattdessen nur diejenigen erhalten, welche innerhalb eines div-Elements einer bestimmten ID stehen (bzw. alternativ diejenigen, welche innerhalb eines li-Elements stehen).
Wie kann ich dies am einfachsten realisieren?

Vielen Dank und einen schönen Tag!
Damian

  1. Hallo,

    var links_in_div=document.getElementById('bestimmten__ID').getElementsByTagName("a");  
    var links_in_li =document.getElementsByTagName('li')[zahl].getElementsByTagName("a");
    

    Gruß aus Berlin!
    eddi

    1. Hallo Eddi,

      leider funktioniert keine der Varianten.

      Für was benötige ich die Zahl bei der list-Auswahl?!?

      Hier mal das gesamte Script, vielleicht ist darin ja ein Fehler erkennbar:

      <!--
      function zeigIcon() {
      var zeig = document.getElementsByID("content").getElementsByTagName("a");
      for (i=0; i<zeig.length; i++) {
      var linkHref = zeig[i].href;
      if (linkHref.match(".doc")) {
      addIcon(zeig[i], "doc");
      }
      else if (linkHref.match(".htm")) {
      addIcon(zeig[i], "htm");
      }
      else if (linkHref.match(".pdf")) {
      addIcon(zeig[i], "pdf");
      }
      else if (linkHref.match(".ppt")) {
      addIcon(zeig[i], "ppt");
      }
      else if (linkHref.match(".txt")) {
      addIcon(zeig[i], "txt");
      }
      else if (linkHref.match(".xls")) {
      addIcon(zeig[i], "xls");
      }
      else {
      addIcon(zeig[i], "folder");
      }
      }
      }

      function addIcon(selLink, ext) {
       var img = document.createElement('img');
       img.src = ""+ext+".gif";
       selLink.parentNode.insertBefore(img, selLink.nextSibling);
      }
      //-->

      Wenn ich var zeig = document.getElementsByTagName("a") schreibe, funktioniert das Script, allerdings erhalte ich dann eben auch ein Bild bei Links, wo ich keines haben möchte...

      Viele Grüße
      Damian

      1. Re:

        Bitte poste/verweise auf das HTML-Dokument!

        Gruß aus Berlin!
        eddi

        1. Bitte poste/verweise auf das HTML-Dokument!

          Auf die Links in diesem Teil würde ich die Funktion gerne anwenden:

          <div id="content">
          <h2>

          Downloads

          </h2>
          <h3>

          Treiber

          </h3>
          <ul>

          <li>CAN-Card</li>

          </ul>
          <h3>

          Tools:

          </h3>
          <ul>

          <li><a href="\folder\subfolder">Folder-Name</a>
           (<a href="\folder\subfolder\Text.txt">Text</a>)</li>

          </ul>
          <h3>

          Add On

          </h3>
          </div>

          Viele Grüße
          Damian

      2. Re:

        var zeig = document.getElementsByID("content").getElementsByTagName("a");

        var zeig = document.getElementByID("content").getElementsByTagName("a");

        Bitte benutze einen Browser™ mit einer JavaScript-Konsole!

        Gruß aus Berlin!
        eddi

        1. Hallo eddi,

          var zeig = document.getElementByID("content").getElementsByTagName("a");

          var zeig = document.getElementById("content").getElementsByTagName("a");
          _________________________________^

          Gruß,
          small-step

          1. var zeig = document.getElementById("content").getElementsByTagName("a");
            _________________________________^

            So funktioniert's...

            Vielen Dank ihr Zwei!

            Rock on!
            Damian

  2. Hallo Damian,

    ich wähle per document.getElementsByTagName("a") in einem Script alle Link-Elemente der Seite aus.
    Nun möchte ich aber stattdessen nur diejenigen erhalten, welche innerhalb eines div-Elements einer bestimmten ID stehen (bzw. alternativ diejenigen, welche innerhalb eines li-Elements stehen).
    Wie kann ich dies am einfachsten realisieren?

    Du könntest zuerst mit getElementsByTagName('a') alle Links in ein Objekt stopfen und dieses anschließend durchgehen. Dabei überprüfst Du mit if(objekt.parentNode.tagName == "li") ob sie Kindelemente einer Liste sind.

    Das gleiche geht auch mit dem Div.

    Gruß,
    small-step

    1. kleine Korrektur...

      Du könntest zuerst mit getElementsByTagName('a') alle Links in ein Objekt stopfen und dieses anschließend durchgehen. Dabei überprüfst Du mit if(objekt.parentNode.tagName == "li") ob sie Kindelemente einer Liste sind.

      Natürlich musst Du mit if(objekt[i].parentNode.tagName == "li") prüfen. Es sei denn Du erstellst für jeden Link ein neues Objekt.

      Gruß,
      small-step

  3. Hallo,

    Nachgereicht der entsprechende SELFHTML-Link.

    Mathias