ron: link in innerHTML geht nicht

hallo allesamt,

habe folgendes problem...

ich möchte in einem innerHTML - berreich einen text ausgeben der ein link ist. mache ich das wie unten in dem script zu sehen, wird der <a href>-tag automatisch sofort wieder geschlossen. ich möchte ihn natürlich aber selbst schliessen, um zu entscheiden welches wort ein link sein soll.

das script ist natürlich aufs notwendigste vereinfacht.
alles in ein innerHTML zu setzen ist nicht die lösung, da ich es getrennt brauche, da später alles dynamisch in schleifen abläuft...

weiss jemand wie man mein problem umgeht?

gruß ron

<html>
<head>
<title></title>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
<div id="textrein"></div>
<script language="javascript">

var div = document.getElementById('textrein');

div.innerHTML+="<a href='#'>";
div.innerHTML+="text";
div.innerHTML+="</a>";
alert(div.innerHTML);
</script>
</body>
</html>

  1. das script ist natürlich aufs notwendigste vereinfacht.
    alles in ein innerHTML zu setzen ist nicht die lösung, da ich es getrennt brauche, da später alles dynamisch in schleifen abläuft...

    Ja und, wo ist das Problem?

    var text = "";

    for(var i = 0; i < 999; i++) text += i

    var div = document.getElementById('textrein');

    div.innerHTML = text;

    ist sowieso immer besser, die ausgabe erst zu sammeln und dann aufeinmal auszugeben.

    Struppi.

    1. hallo struppi,

      der witz an dem script ist das der text zeilenweise ausgegeben wird....
      ...ich weiss ist geschmackssache... wird aber in diesem fall gewünscht...

      das script ist natürlich aufs notwendigste vereinfacht.
      alles in ein innerHTML zu setzen ist nicht die lösung, da ich es getrennt brauche, da später alles dynamisch in schleifen abläuft...

      Ja und, wo ist das Problem?

      1. der witz an dem script ist das der text zeilenweise ausgegeben wird....
        ...ich weiss ist geschmackssache... wird aber in diesem fall gewünscht...

        Dann musst du Textknoten einfügen.

        Struppi.

        1. hallo struppi,

          kannst du mir vielleicht kurz erläutern was du damit genau meinst?

          Dann musst du Textknoten einfügen.

          kann damit in diesem zusammenhang nichts anfangen...

          gruß ron

          1. Dann musst du Textknoten einfügen.

            kann damit in diesem zusammenhang nichts anfangen...

            http://selfhtml.teamone.de/javascript/objekte/node.htm

            Struppi.

            1. danke für den link, aber leider stelle ich mich anscheinend ein wenig doof an, da ich nicht verstehe wie das bei meinem problem weiterhilft....

              gruß ron

              1. danke für den link, aber leider stelle ich mich anscheinend ein wenig doof an, da ich nicht verstehe wie das bei meinem problem weiterhilft....

                du willst einen Textknoten erzeugen und dem HTML Dokument zufügen.

                innerHTML ist sowieso kein Standard, wird aber von allen gängigen browsern umgestzt, aber offensichtlich nicht so wie du es willst. Dann bleibt dir nur der weg über die DOM Methode

                Struppi.

  2. Das Problem dabei ist, dass in deinem div-Tag hinterher nur noch ein </a> steht, aussehen müsste das ganze so:
    [...]
    div.innerHTML="<a='#'>";
    div.innerHTML= div.innerHTML + "text";
    div.innerHTML = div.innerHTML + "</a>";
    [...]

    Und dann halt bei Bedarf noch <br>'s setzen!

    Gruss

    1. hi,

      entweder habe ich die antwort nicht verstanden, oder das gesagte funktioniert nicht...

      folgender code brachte als ausgabe auch keinen link...

      <html>
      <head>
      <title></title>
      </head>
      <body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
      <div id="textrein"></div>
      <script language="javascript">

      var div = document.getElementById('textrein');

      div.innerHTML="<a='#'>";
      div.innerHTML= div.innerHTML + "text";
      div.innerHTML = div.innerHTML + "</a>";
      alert(div.innerHTML);
      </script>
      </body>
      </html>

      da fehlt dann das "<a='#'>" in der ausgabe...

      gruß ron

      Das Problem dabei ist, dass in deinem div-Tag hinterher nur noch ein </a> steht, aussehen müsste das ganze so:
      [...]
      div.innerHTML="<a='#'>";
      div.innerHTML= div.innerHTML + "text";
      div.innerHTML = div.innerHTML + "</a>";
      [...]

      Und dann halt bei Bedarf noch <br>'s setzen!

      Gruss

  3. Hallo ron,

    alles in ein innerHTML zu setzen ist nicht die lösung, da ich es getrennt brauche, da später alles dynamisch in schleifen abläuft...

    Aber könntest Du die separaten Teile nicht erst in eine Variable schreiben und dann einem innerHTML zuweisen? Also:

    var div = document.getElementById('textrein');

    var text="";
    text ="<a href='#'>";
    text +="text";
    text +="</a>";
    div.innerHTML = text;
    alert(div.innerHTML);

    Gruß aus Köln-Ehrenfeld,

    Elya

    --
    "Alle mal an die Nase fassen, und zwar an die eigene": </archiv/2003/9/57903/#m324482>
    _____________
    elyas virtuelle Altbauwohnung: http://www.visuelya.de