JonnyX: Link ohne id mit javascript ändern

Hallo erstmal

Ich möchte gerne mit einem javascript einen Link ändern. Dieser Link steht in einem li Element, das allerdings keine id hat, jedoch immer das 5. li Element in einem Div-Tag mit id ist. Wie kann ich den Link ändern, also ein li ohne id ansprechen?
Schonmal Danke für eure Antworten...

  1. Hi,

    Ich möchte gerne mit einem javascript einen Link ändern. Dieser Link steht in einem li Element, das allerdings keine id hat, jedoch immer das 5. li Element in einem Div-Tag mit id ist. Wie kann ich den Link ändern, also ein li ohne id ansprechen?

    getElementsByTagName - als Methode auf dem DIV aufgerufen.

    MfG ChrisB

    --
    “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
    1. Hi,

      Ich möchte gerne mit einem javascript einen Link ändern. Dieser Link steht in einem li Element, das allerdings keine id hat, jedoch immer das 5. li Element in einem Div-Tag mit id ist. Wie kann ich den Link ändern, also ein li ohne id ansprechen?

      getElementsByTagName - als Methode auf dem DIV aufgerufen.

      MfG ChrisB

      Das sieht bei mir jetzt so aus:
      (
      document.getElementById("links)  {
        document.getElementsByTagName("li")[6].href = "link";

      }
      );

      Allerdings funktioniert es nicht. Was mache ich falsch?

      1. Hi,

        Das sieht bei mir jetzt so aus:
        (
        document.getElementById("links)  {
          document.getElementsByTagName("li")[6].href = "link";

        }
        );

        Allerdings funktioniert es nicht. Was mache ich falsch?

        So gut wie alles.

        Was soll ein alleinstehendes Statement

        document.getElementById("links)

        bewirken?
        Wenn du mit dem ermittelten Element überhaupt nichts machst - wozu ermittelst du es dann?

        document.getElementsByTagName("li")[6].href = "link";

        Haben LI-Elemente in HTML ein href-Attribut?

        (Du kannst ihnen zwar eine JavaScript-Eigenschaft dieses Namens verpassen, aber das bewirkt natürlich nichts hilfreiches.)

        MfG ChrisB

        --
        “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
        1. Hi,

          Das sieht bei mir jetzt so aus:
          (
          document.getElementById("links)  {
            document.getElementsByTagName("li")[6].href = "link";

          }
          );

          Allerdings funktioniert es nicht. Was mache ich falsch?

          So gut wie alles.

          Was soll ein alleinstehendes Statement

          document.getElementById("links)
          bewirken?
          Wenn du mit dem ermittelten Element überhaupt nichts machst - wozu ermittelst du es dann?

          document.getElementsByTagName("li")[6].href = "link";
          Haben LI-Elemente in HTML ein href-Attribut?

          (Du kannst ihnen zwar eine JavaScript-Eigenschaft dieses Namens verpassen, aber das bewirkt natürlich nichts hilfreiches.)

          MfG ChrisB

          Also die Seite, die ich ändern will sieht so aus:
               <div id="links">
               <ul>
          <li id="link_index"><a href="link1">Link1</a></li>
          <li>
          <a href="link2">Link2

          						</a>  
          					</li>  
          					<li id="link\_report">  
          
          						<a href="link3">Link3  
          							  
          						</a>  
          					</li>  
          					<li><a href="link4">link4</a></li>  
          												<li>  
          							<a href="link5(den will ich ändern">link5									  
          							</a>  
          						  
          				</ul>  
          	    	</div>  
          
          1. Hi there,

            <a href="link5(d will ich änder dern">link5 [...]

            also, wenn ich richtig mitgezählt habe, ist das der 5.Link;) Jetzt solltest Du aber schon d'raufkommen... (wobei die Betonung auf LINK liegt, der gemeinhin mit A eingeleitet wird)

            1. Hm bei mir sieht das jetzt so aus, aber es funktioniert immernoch nicht...

              1. document.getElementById("links").document.getElementsByTagName("a")[5].href = "link";

                1. Hallo JonnyX!

                  document.getElementById("links").document.getElementsByTagName("a")[5].href = "link";

                  Liest Du auch alle Antwort(en) die Du bekommst? Wohl nicht, oder?

                  Viele Grüße aus Frankfurt/Main,
                  Patrick

                  --
                  _ - jenseits vom delirium - _

                     Diblom   [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
                  Achtung Agentur! | Nichts ist unmöglich? Doch! | Heute schon gegökt?
                  1. Liest Du auch alle Antwort(en) die Du bekommst? Wohl nicht, oder?

                    Viele Grüße aus Frankfurt/Main,
                    Patrick

                    Doch, allerdings funktioniert das auch nicht. Da müsste doch prinzipiell genau das gleiche bewirkt werden, wie bei dem:

                    document.getElementById("links").document.getElementsByTagName("a")[5].href = "link";

                    Aber werder das eine, noch das andere funktionieren.

                    1. Hallo JonnyX!

                      Doch, allerdings funktioniert das auch nicht. Da müsste doch prinzipiell genau das gleiche bewirkt werden, wie bei dem:

                      document.getElementById("links").document.getElementsByTagName("a")[5].href = "link";

                      ^^^^^^^^

                      Müsste prinzipiell, wenn Du nicht nochmal das ganze »document« nach a-Elementen durchsuchen würdest...

                      Viele Grüße aus Frankfurt/Main,
                      Patrick

                      --
                      _ - jenseits vom delirium - _

                         Diblom   [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
                      Achtung Agentur! | Nichts ist unmöglich? Doch! | Heute schon gegökt?
                      1. Hallo JonnyX!

                        Doch, allerdings funktioniert das auch nicht. Da müsste doch prinzipiell genau das gleiche bewirkt werden, wie bei dem:

                        document.getElementById("links").document.getElementsByTagName("a")[5].href = "link";
                                                               ^^^^^^^^

                        Müsste prinzipiell, wenn Du nicht nochmal das ganze »document« nach a-Elementen durchsuchen würdest...

                        Viele Grüße aus Frankfurt/Main,
                        Patrick

                        var  theDiv = document.getElementById("links");
                        theDiv.getElementsByTagName('li')[5].firstChild.href = 'foo.html';

                        funktioniert aber auch nicht und wenn ich bei »» document.getElementById("links").document.getElementsByTagName("a")[5].href = "link";
                        das 2. document weglasse ändert sich auch nichts...

                        1. Okay es funktioniert doch.
                          Vielen Dank für eure geduldige Hilfe!

                          1. Okay es funktioniert doch.

                            und "funktioniert nicht", ist keine Fehlerbeschreibung. Ich weoiß ncith, warum dich noch niemand auf die Fehlerkonsole aufmerksam gemacht hat. Man hätte sich einige Posting ersparen könne, denn du hättest einige Fehler selber gefunden.

                            Struppi.

        2. Hi,

          document.getElementById("links)  {
          Was soll ein alleinstehendes Statement
          document.getElementById("links)
          bewirken?

          Einen Syntax-Fehler, da der String nicht mehr geschlossen wird ...

          cu,
          Andreas

          --
          Warum nennt sich Andreas hier MudGuard?
          O o ostern ...
          Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
      2. Hallo JonnyX!

        Das sieht bei mir jetzt so aus:
        (
        document.getElementById("links)  {
          document.getElementsByTagName("li")[6].href = "link";

        }
        );

        Allerdings funktioniert es nicht. Was mache ich falsch?

        Nahezu alles ;)

        Wenn Du document.getElementsByTagName('li') schreibst, erhälst du die Collection aller LI-Element im Dokument. Willst Du nur diejenigen, die im DIV#links enthalten sind, musst das auch angeben. Zum Beispiel so:

        var theDiv = document.getElementById("links");

        Dann gibt Dir:

        theDiv.getElementsByTagName('li')

        die Collection der LI-Elemente (ein Array), die in diesem DIV#links enthalten sind.

        Aber Listenpunkte haben keinen Attribut href - aber A-Elemente. Vielleicht hilft hier firstChild:

        theDiv.getElementsByTagName('li').firstChild.href = 'foo.html';

        , vorausgesetzt, dein erstes Listenpunktkind ist kein Zeilenumbruch noch ein Leerzeichen sondern direkt <a ...>

        Viele Grüße aus Frankfurt/Main,
        Patrick

        --
        _ - jenseits vom delirium - _

           Diblom   [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
        Achtung Agentur! | Nichts ist unmöglich? Doch! | Heute schon gegökt?
        1. Bitte lesen:

          theDiv.getElementsByTagName('li')[index].firstChild.href = 'foo.html';

          Grmbl, dabei benutze ich doch die Vorschau!

          Viele Grüße aus Frankfurt/Main,
          Patrick

          --
          _ - jenseits vom delirium - _

             Diblom   [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
          Achtung Agentur! | Nichts ist unmöglich? Doch! | Heute schon gegökt?
  2. Hm jetzt habe ich doch noch ein Problem.

    Wenn ich einen neuen link einfügen will (an 4. Stelle),dann kommt in der Fehlerkonsole die Meldung "node was not found". Wo liegt da der Fehler?
    Wenn ich statt insertBefore appendChild nehme , dann wird der Link zwar eingefügt, aber er steht dann ganz am Ende.
    Hier mein Code:
    document.getElementById("links").insertBefore(neuB, document.getElementById("links").getElementsByTagName("a")[4]);

    1. Wenn ich einen neuen link einfügen will (an 4. Stelle),dann kommt in der Fehlerkonsole die Meldung "node was not found". Wo liegt da der Fehler?

      ..

      document.getElementById("links").getElementsByTagName("a")[4]);

      JS zählt immer ab 0, d.h. die 4. Stelle ist [3]

      Struppi.

      1. JS zählt immer ab 0, d.h. die 4. Stelle ist [3]

        Struppi.

        Auch das ändert nichts.
        Die Fehlermeldung belibt die gleiche. Woran könnte das liegen?

        1. Auch das ändert nichts.
          Die Fehlermeldung belibt die gleiche. Woran könnte das liegen?

          Kann ich dir natürlich nicht sagen, ausser daran dass das Element nicht existiert.

          Struppi.