markus: document.createTextNode und html tags

hallo

folgendes problem - ich erzeuge mit dem dom eine tabelle

var td = document.createElement('td');  
var tc = document.createElement('td inhalt');  
td.appendChild(tc);

die daten waren bis jetzt immer einfache strings - funzte alles bestens bis aus den strings tags wurden z. b.

var tc = document.createElement('<a href="#">link</a>');

createElement() kovertiert den uebergebenen string - im jeweiligen td steht dann kein link sondern:
&lt;a href="#"&gt;link&lt;/a&gt;
... is schlecht

ausgegangen bin ich von
http://www.mozilla.org/docs/dom/domref/dom_doc_ref45.html
wird wohl aber nur ein beispiel gewesen sein

wuerde mich ueber jede idee freuen
danke
markus

  1. Hallo markus.

    var tc = document.createElement('<a href="#">link</a>');

    createElement() kovertiert den uebergebenen string - im jeweiligen td steht dann kein link sondern:
    &lt;a href="#"&gt;link&lt;/a&gt;
    ... is schlecht

    Natürlich. So geht dies ja auch nicht.
    Was du createElement als Parameter übergibst wird exakt als Element erschaffen.
    Und wenn du--wie hier--am Ende ein <&lt;a href="#"&gt;link&lt;/a&gt;></&lt;a href="#"&gt;link&lt;/a&gt;> haben möchtest, dann wird dies auch so ausgeführt.

    Erschaffe das a-Element wie gehabt und setze die benötigten Attribute.

    BTW: Dein Thema handelt von createTextNode, was ich hier aber nicht erkennen kann...

    Einen schönen Donnerstag noch.

    Gruß, Ashura

    --
    Selfcode: sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:) fl:( ss:) ls:[ js:|
    30 Days to becoming an Opera8 Lover -- Opera Mini on Treo
    Meine Browser: Opera 8.02 | Firefox 1.0.6 | Lynx 2.8.5 | Netscape 4.7 | IE 6.0
    [Deshalb frei! - Argumente pro freie Software]
    1. Hallo markus.

      var tc = document.createElement('<a href="#">link</a>');

      createElement() kovertiert den uebergebenen string - im jeweiligen td steht dann kein link sondern:
      &lt;a href="#"&gt;link&lt;/a&gt;
      ... is schlecht

      Natürlich. So geht dies ja auch nicht.
      Was du createElement als Parameter übergibst wird exakt als Element erschaffen.
      Und wenn du--wie hier--am Ende ein <&lt;a href="#"&gt;link&lt;/a&gt;></&lt;a href="#"&gt;link&lt;/a&gt;> haben möchtest, dann wird dies auch so ausgeführt.

      Erschaffe das a-Element wie gehabt und setze die benötigten Attribute.

      BTW: Dein Thema handelt von createTextNode, was ich hier aber nicht erkennen kann...

      Einen schönen Donnerstag noch.

      Gruß, Ashura

      hallo ashura

      vielleicht hab ich mich komisch ausgedrueckt sorry - das ergebnis sollte sein:
      <td><a href="#">link</a></td>
      erzeugt wird aber:
      <td>&lt;a href="#"&gt;link&lt;/a&gt;</a>
      das ist auch ok so - mich interessiern gerade die alternativen die den uebergebenen string nicht codiren bzw den string anders interpretieren

      danke
      markus

      ps: so was in der art wie td.innerHTML = '<tag>' aber ...

      1. Hallo markus.

        vielleicht hab ich mich komisch ausgedrueckt sorry

        Du tust es weiterhin.

        • das ergebnis sollte sein:
          <td><a href="#">link</a></td>

        Gut. Also ein Link in einer Tabellenzelle.

        erzeugt wird aber:
        <td>&lt;a href="#"&gt;link&lt;/a&gt;</a>
        das ist auch ok so

        Also soll es doch kein Link in einer Tabellenzelle werden?

        • mich interessiern gerade die alternativen die den uebergebenen string nicht codiren bzw den string anders interpretieren

        Wie „anders“

        ps: so was in der art wie td.innerHTML = '<tag>' aber ...

        Aber was?

        Einen schönen Donnerstag noch.

        Gruß, Ashura

        --
        Selfcode: sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:) fl:( ss:) ls:[ js:|
        30 Days to becoming an Opera8 Lover -- Opera Mini on Treo
        Meine Browser: Opera 8.02 | Firefox 1.0.6 | Lynx 2.8.5 | Netscape 4.7 | IE 6.0
        [Deshalb frei! - Argumente pro freie Software]
        1. Hallo markus.

          vielleicht hab ich mich komisch ausgedrueckt sorry

          Du tust es weiterhin.

          dann noch mal tschuldigung

          • das ergebnis sollte sein:
            <td><a href="#">link</a></td>

          Gut. Also ein Link in einer Tabellenzelle.

          yupp

          erzeugt wird aber:
          <td>&lt;a href="#"&gt;link&lt;/a&gt;</a>
          das ist auch ok so

          Also soll es doch kein Link in einer Tabellenzelle werden?

          es soll ein link in einer tabellenzelle werden

          • mich interessiern gerade die alternativen die den uebergebenen string nicht codiren bzw den string anders interpretieren

          Wie „anders“

          ps: so was in der art wie td.innerHTML = '<tag>' aber ...

          Aber was?

          ja! was? :)

          markus

          1. Hallo markus.

            Also soll es doch kein Link in einer Tabellenzelle werden?

            es soll ein link in einer tabellenzelle werden

            Dann führe die von mir bereits erwähnten Schritte durch, um ein als Link funktionstüchtiges a-Element zu erzeugen.

            ps: so was in der art wie td.innerHTML = '<tag>' aber ...

            Aber was?

            ja! was? :)

            Bitte definiere „...“.

            Einen schönen Donnerstag noch.

            Gruß, Ashura

            --
            Selfcode: sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:) fl:( ss:) ls:[ js:|
            30 Days to becoming an Opera8 Lover -- Opera Mini on Treo
            Meine Browser: Opera 8.02 | Firefox 1.0.6 | Lynx 2.8.5 | Netscape 4.7 | IE 6.0
            [Deshalb frei! - Argumente pro freie Software]
            1. Hallo markus.

              Also soll es doch kein Link in einer Tabellenzelle werden?

              es soll ein link in einer tabellenzelle werden

              Dann führe die von mir bereits erwähnten Schritte durch, um ein als Link funktionstüchtiges a-Element zu erzeugen.

              hm ... also wie schon gesagt es funktioniert (http://forum.de.selfhtml.org/?t=114471&m=729830) und mir ist immer noch nicht ganz klar was der setAttribute-link mit dem problem zu schaffen hatte - ich kann den a-tag nich erzeugen - dieser ist ne vorgabe - egal es laeuft :) und danke

              markus

              1. Hallo markus.

                hm ... also wie schon gesagt es funktioniert (https://forum.selfhtml.org/?t=114471&m=729830)

                Ja, dies verdankst du aber auch nur der Tatsache, dass sich die Geckos und Opera zur Unterstützung von innerHTML haben breit schlagen lassen.
                Behalte die DOM-Methoden im Hinterkopf, sie sind zukunftstauglicher und weitaus mächtiger.

                und mir ist immer noch nicht ganz klar was der setAttribute-link mit dem problem zu schaffen hatte

                Damit könntest du das href-Attribut des von dir zuvor erzeugten a-Elementes setzen.

                • ich kann den a-tag nich erzeugen - dieser ist ne vorgabe

                Diese Wortgruppe verstehe ich nicht.

                Ist der exakte String „<a href="#">link</a>“ vorgegeben?
                Wenn ja inwiefern und warum?

                Einen schönen Donnerstag noch.

                Gruß, Ashura

                --
                Selfcode: sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:) fl:( ss:) ls:[ js:|
                30 Days to becoming an Opera8 Lover -- Opera Mini on Treo
                Meine Browser: Opera 8.02 | Firefox 1.0.6 | Lynx 2.8.5 | Netscape 4.7 | IE 6.0
                [Deshalb frei! - Argumente pro freie Software]
                1. Hallo markus.

                  hm ... also wie schon gesagt es funktioniert (https://forum.selfhtml.org/?t=114471&m=729830)

                  Ja, dies verdankst du aber auch nur der Tatsache, dass sich die Geckos und Opera zur Unterstützung von innerHTML haben breit schlagen lassen.
                  Behalte die DOM-Methoden im Hinterkopf, sie sind zukunftstauglicher und weitaus mächtiger.

                  is klar - wuerde mich auch immer noch ueber eine idee/alternative in richtung dom freuen

                  und mir ist immer noch nicht ganz klar was der setAttribute-link mit dem problem zu schaffen hatte

                  Damit könntest du das href-Attribut des von dir zuvor erzeugten a-Elementes setzen.

                  • ich kann den a-tag nich erzeugen - dieser ist ne vorgabe

                  Diese Wortgruppe verstehe ich nicht.

                  Ist der exakte String „<a href="#">link</a>“ vorgegeben?
                  Wenn ja inwiefern und warum?

                  ja dieser und andere strings sind so vorgegeben - 'warum' gibt's eigentlich keines - ist einfach so

                  Einen schönen Donnerstag noch.

                  Gruß, Ashura

                  dir auch noch nen schoenen donnerstag :)
                  markus

                  1. Hallo markus.

                    is klar - wuerde mich auch immer noch ueber eine idee/alternative in richtung dom freuen

                    Wenn der String exakt vorgegeben ist, bleibt hier wohl nur innerHTML.
                    Den String erst mittels regulärer Ausdrücke auseinanderzupflücken, nur um DOM-gerecht Element vom Attribut zu trennen, damit es dann säuberlich wieder zusammengesetzt werden kann, ist in meinen Augen nicht wirklich effizient.

                    ja dieser und andere strings sind so vorgegeben - 'warum' gibt's eigentlich keines - ist einfach so

                    Ich bevorzuge fast immer Begründungen, akzeptiere dies aber auch so.

                    Einen schönen Donnerstag noch.

                    Gruß, Ashura

                    --
                    Selfcode: sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:) fl:( ss:) ls:[ js:|
                    30 Days to becoming an Opera8 Lover -- Opera Mini on Treo
                    Meine Browser: Opera 8.02 | Firefox 1.0.6 | Lynx 2.8.5 | Netscape 4.7 | IE 6.0
                    [Deshalb frei! - Argumente pro freie Software]
                    1. Hallo markus.

                      is klar - wuerde mich auch immer noch ueber eine idee/alternative in richtung dom freuen

                      Wenn der String exakt vorgegeben ist, bleibt hier wohl nur innerHTML.
                      Den String erst mittels regulärer Ausdrücke auseinanderzupflücken, nur um DOM-gerecht Element vom Attribut zu trennen, damit es dann säuberlich wieder zusammengesetzt werden kann, ist in meinen Augen nicht wirklich effizient.

                      yupp

                      ja dieser und andere strings sind so vorgegeben - 'warum' gibt's eigentlich keines - ist einfach so

                      Ich bevorzuge fast immer Begründungen, akzeptiere dies aber auch so.

                      es geht um das frontend eines pagers - bis jetzt wurden die daten so gerendert wie sie vom server kamen - dazu kamen jetzt modifieres die den inhalt einer spalte ggf aendern - einen modifier so zu bauen das er fuer jedes elemet ein eigenes dom-objekt erstell empfand ich als zu dick - also hab ich mich fuer was einfacheres entschieden
                      der modifier - 2, <a href="/users/details/{0}">{2}</a> - macht aus 12;bla;markus - 12;bla;<a href="/users/details/12">markus</a> ... das ist eigentlich alles ... und wie gesagt das 'warum' tut da nich viel zur sache - der record der vom server kommt koennte z.b. auch schon so aussehen - dann haette ich das gleich problem nur das das 'warum' noch weniger eine rolle spielt

                      guten morgen
                      markus

      2. danke
        markus

        ps: so was in der art wie td.innerHTML = '<tag>' aber ...

        ha - genau das funktioniert :)

        danke
        markus