lina-: DOM und IE6

moin :)

Ich habe hier (mal wieder) ein etwas kniffliges Problem:

Die Fakten:

  • in einem tr-Element ist das Attribut "name" nicht vorgesehen
  • lina schreibt in mehreren ihrer dynamisch (mit javascript) erzeugten <tr>s trotzdem einen Namen rein

tr=document.createElement("tr");
   tr.setAttribute("name", "trCal");

  • später werden die <tr>s wieder ausgelesen mit

td=document.createElement("td");
     var collection  =document.getElementsByName("trCal");
     collection[collection.length-1].appendChild(td);

  • Die Welt ist schön im Firefox :)
  • Test mit IE muss aber auch durchgeführt werden...
  • nix geht mehr im IE6 :(
  • IE6 schreibt den Namen erst gar nicht in das Element (wie es ja eigentlich sogar korrekt ist)

Nun meine Frage: Hat jemand ne Idee für einen Workaround? Das Problem ist halt, dass ich nicht mit getElementByID abfragen kann, weil ich die Collection brauche. Andereseits kann ich allerdings auch nicht alle <tr>s mit getElementByTagName abfragen, weil zwischendrin noch <tr>s gesetzt werden, die nicht in der Collection auftauchen sollen.
Für sachdienliche Hinweise zum Feierabend bin ich dankbar ;)

liebe Grüße aus Berlin
lina-

--
Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)
  1. Hi lina,

    tr=document.createElement("tr");

    Als wessen Kind kreierst du tr?

    liebe Grüße aus Berlin
    Gunnar

    --
    „Weisheit ist nicht das Ergebnis der Schulbildung, sondern des lebenslangen Versuchs, sie zu erwerben.“ (Albert Einstein)
  2. Ich habe hier (mal wieder) ein etwas kniffliges Problem:

    Die Fakten:

    • in einem tr-Element ist das Attribut "name" nicht vorgesehen
    • lina schreibt in mehreren ihrer dynamisch (mit javascript) erzeugten <tr>s trotzdem einen Namen rein

    tr=document.createElement("tr");
       tr.setAttribute("name", "trCal");

    • später werden die <tr>s wieder ausgelesen mit

    Also erstes, du hast auch tbody element?
    zweitens, warum verwendest du nicht die Referenzen beim erzeugen?
    Da hast du sie doch bereits.

    Struppi.

    1. moin :)

      @Gunnar - na als Kind von thead bzw. tbody (jenachdem)
      Hab das hier jetzt nich alles gepostet - wär aweng viel *g*

      Also erstes, du hast auch tbody element?

      auch diese Frage dürfte beantwortet sein ;)

      zweitens, warum verwendest du nicht die Referenzen beim erzeugen?

      hmmm???

      Da hast du sie doch bereits.

      Was genau meinst du damit? Ich steh jetzt irgendwie aufm Schlauch

      liebe Grüße aus Berlin
      lina-

      --
      Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)
      1. zweitens, warum verwendest du nicht die Referenzen beim erzeugen?
        hmmm???
        Da hast du sie doch bereits.
        Was genau meinst du damit? Ich steh jetzt irgendwie aufm Schlauch

        Naja:

        tr=document.createElement("tr");

        tr ist jetzt eine eindeutige Referenz auf die Reihe oder

        td=document.createElement("td");

        td auf die Zelle, es ist absolut nicht notwendig diese mit getElement nochmals aus dem Dokument zu ermitteln.

        Struppi.

        1. moin :)

          Naja:

          tr=document.createElement("tr");

          tr ist jetzt eine eindeutige Referenz auf die Reihe oder

          td=document.createElement("td");

          td auf die Zelle, es ist absolut nicht notwendig diese mit getElement nochmals aus dem Dokument zu ermitteln.

          Prinzipiell richtig... allerdings hatte ich doch auch erwähnt, dass ich mehrere dieser Zeilen und Zellen habe ... dieser Code ist Bestandteil einer Schleife (so daß die Referenz td halt immer nur auf die letzte Zelle verweist) - sorry  - das hätte ich wohl deutlicher herausstellen sollen :]

          liebe Grüße aus Berlin
          lina-

          --
          Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)
          1. td auf die Zelle, es ist absolut nicht notwendig diese mit getElement nochmals aus dem Dokument zu ermitteln.

            Prinzipiell richtig... allerdings hatte ich doch auch erwähnt, dass ich mehrere dieser Zeilen und Zellen habe ... dieser Code ist Bestandteil einer Schleife (so daß die Referenz td halt immer nur auf die letzte Zelle verweist) - sorry  - das hätte ich wohl deutlicher herausstellen sollen :]

            Selbst das ist doch kein Problem.

            Du speicherst doch offensichtlich die Referenzen in einem Array, oder?

            und dieses kannst du auch ohne Probleme in der schleife füllen.

            Ich wende dies z.b. hier bei meinem Kalender Skript an http://javascript.jstruebig.de/source/kalender.html

            Struppi.

            1. moin :)

              Selbst das ist doch kein Problem.
              Du speicherst doch offensichtlich die Referenzen in einem Array, oder?

              oehm - nein - das habe ich bisher nicht getan... aber diese Option ist sehr charmant :)
              Ich mein - die Schleife die mir Cheatah vorgeschlagen hat funktiert zwar - aber ich glaube fast, das ganze _dirkt_ in einem Array zu speichern und von dort wieder auszulesen ist wesentlich effektiver... gleich mal probieren ;)

              liebe Grüße aus Berlin
              lina-

              --
              Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)
            2. moin :)

              @Struppi - Danke - deine Idee ist klasse gewesen - und funktioniert super!

              liebe Grüße aus Berlin
              lina-

              --
              Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)
  3. Hi,

    • IE6 schreibt den Namen erst gar nicht in das Element

    das hast Du wie ermittelt? Lass Dir mal elementreferenz.outerHTML ausgeben.

    (wie es ja eigentlich sogar korrekt ist)

    Nun ja, setAttribute sollte ein Attribut setzen. Ob der Dokumenttyp dies vorsieht, ist da AFAIK nicht von Belang.

    Nun meine Frage: Hat jemand ne Idee für einen Workaround? Das Problem ist halt, dass ich nicht mit getElementByID abfragen kann, weil ich die Collection brauche. Andereseits kann ich allerdings auch nicht alle <tr>s mit getElementByTagName abfragen, weil zwischendrin noch <tr>s gesetzt werden, die nicht in der Collection auftauchen sollen.

    Wenn (was ich vermute) das name-Attribut vorhanden ist, kannst Du die Liste der getElementsByTagName('tr') in einer Schleife mit getAttribute kombinieren.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. moin :)

      das hast Du wie ermittelt? Lass Dir mal elementreferenz.outerHTML ausgeben.

      Das habe ich ehrlich gesagt nur vermutet weil sowas in der Art schonmal diskutiert wurde (Archiv)
      und outerHTML bestätigt dich: <tr name="trCal"></tr>

      Nun ja, setAttribute sollte ein Attribut setzen. Ob der Dokumenttyp dies vorsieht, ist da AFAIK nicht von Belang.

      das wusste ich nicht...

      Wenn (was ich vermute) das name-Attribut vorhanden ist, kannst Du die Liste der getElementsByTagName('tr') in einer Schleife mit getAttribute kombinieren.

      Das ist ein toller Hinweis! Werde ich gleich mal probieren :)

      liebe Grüße aus Berlin
      lina-

      --
      Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)
    2. moin :)

      @Cheatah - Vielen vielen Dank! Dein Tip war Gold wert :) Jetzt läuft alles wie gewünscht (selbst im IE *g*)

      liebe Grüße aus Berlin
      lina-

      --
      Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)
  4. hi,

    Die Fakten:

    • in einem tr-Element ist das Attribut "name" nicht vorgesehen
    • lina schreibt in mehreren ihrer dynamisch (mit javascript) erzeugten <tr>s trotzdem einen Namen rein
    • lina hat </faq/#Q-11> nicht gelesen, und bleibt nicht in ihrem thread.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. moin :)

      • lina hat </faq/#Q-11> nicht gelesen, und bleibt nicht in ihrem thread.
      • lina hat die FAQ sehr wohl gelesen (ist ja schon ein paar Jahre dabei) ... ich finde nur, dass mein CSS-Problem nichts - rein gar nichts mit meinem Javascript-Problem zu tun hat! Dass beide Probleme in ein und dem selben Projekt auftreten, ist reiner Zufall!

      liebe Grüße aus Berlin
      lina-

      --
      Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)
      1. puts "Hallo " + gets.chomp + "."

        ?> lina
        => Hallo lina.

        ... ich finde nur, dass mein CSS-Problem nichts - rein gar nichts mit meinem Javascript-Problem zu tun hat!

        Und? Was hindert dich daran, den Themenbereich und Thementitel zu ändern?

        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 -- Day 20: search.ini
        Meine Browser: Opera 8.01 | Firefox 1.0.4 | Lynx 2.8.3 | Netscape 4.7 | IE 6.0
        [Deshalb frei! - Argumente pro freie Software]
        1. moin :)

          Und? Was hindert dich daran, den Themenbereich und Thementitel zu ändern?

          nichts natürlich - aber was hindert mich daran, einen neuen Thread zu einem andern Thema anfzufangen?

          Ich glaube nicht, dass ich damit gegen die FAQ verstoßen habe.

          liebe Grüße aus Berlin
          lina-

          --
          Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)
          1. puts "Hallo " + gets.chomp + "."

            ?> lina
            => Hallo lina.

            nichts natürlich - aber was hindert mich daran, einen neuen Thread zu einem andern Thema anfzufangen?

            Der Gedanke, dass man doch eigentlich Themen zu einem bestimmten Projekt auch in einem Thread unterbringen kann, sodass Helfer nicht zwischen mehreren Threads pendeln müssen und Suchende später im Archiv schneller fündig werden.

            Ich glaube nicht, dass ich damit gegen die FAQ verstoßen habe.

            Naja... </faq/#Q-06c>

            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 -- Day 20: search.ini
            Meine Browser: Opera 8.01 | Firefox 1.0.4 | Lynx 2.8.3 | Netscape 4.7 | IE 6.0
            [Deshalb frei! - Argumente pro freie Software]
            1. moin :)

              Der Gedanke, dass man doch eigentlich Themen zu einem bestimmten Projekt auch in einem Thread unterbringen kann, sodass Helfer nicht zwischen mehreren Threads pendeln müssen und Suchende später im Archiv schneller fündig werden.

              und welcher Suchende vermutet ein eindeutiges Javascript-Problem in einem CSS-Thread? (auch wenn man den Titel und so ändern kann - thematisch hatten diese Fragen nichts miteinander zu tun)

              Naja... </faq/#Q-06c>

              "...die sich thematisch einigermaßen ergänzen..."
              taten sie das?
              Wenn ja - sollte ich mein Allgemeinverständnis von Javascript-Coding und CSS-Auszeichnung noch einmal überdenken...

              liebe Grüße aus Berlin
              lina-

              --
              Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)
              1. puts "Hallo " + gets.chomp + "."

                ?> lina
                => Hallo lina.

                und welcher Suchende vermutet ein eindeutiges Javascript-Problem in einem CSS-Thread? (auch wenn man den Titel und so ändern kann - thematisch hatten diese Fragen nichts miteinander zu tun)

                Gut, das Argument der späteren Archivsuche ist etwas mau, da man dort sowieso eine Volltextsuche zur Verfügung hat, ungeachtet dessen, in welchem Themenbereich / Thread man sich befindet.

                Naja... </faq/#Q-06c>
                "...die sich thematisch einigermaßen ergänzen..."
                taten sie das?
                Wenn ja - sollte ich mein Allgemeinverständnis von Javascript-Coding und CSS-Auszeichnung noch einmal überdenken...

                Nein, es geht nicht um die eingesetzte Technik, sondern um das Thema „Dein Projekt“; und hierzu genügt doch ein Thread.

                Verstehe mich bitte nicht falsch; ich erhoffe mir hierdurch lediglich der Übersichtlichkeit in der Hauptdatei dienlich zu sein. (Ja, es _gibt_ weitaus schlimmerer Fälle von Multithreads, dessen bin ich mir bewusst.)

                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 -- Day 20: search.ini
                Meine Browser: Opera 8.01 | Firefox 1.0.4 | Lynx 2.8.3 | Netscape 4.7 | IE 6.0
                [Deshalb frei! - Argumente pro freie Software]
                1. moin :)

                  Verstehe mich bitte nicht falsch; ich erhoffe mir hierdurch lediglich der Übersichtlichkeit in der Hauptdatei dienlich zu sein. (Ja, es _gibt_ weitaus schlimmerer Fälle von Multithreads, dessen bin ich mir bewusst.)

                  *g* ich versteh dich schon.. finds ja selber dreist, daß einige Newbies  innerhalb von 2h die komplett gleiche Frage nocheinmal stellen...
                  aber das hier ist doch Haarspalterei.
                  Btw ist das meine Premiere (glaub ich zumindest)... in knapp drei Jahren Forumsaktivität des Doppelpostings beschuldigt zu werden... und yeah! es war wahsaga ;) *kicher*

                  Einen schönen Donnerstag noch.

                  Dir auch ;)

                  liebe Grüße aus Berlin
                  lina-

                  --
                  Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)
                2. Wenn ja - sollte ich mein Allgemeinverständnis von Javascript-Coding und CSS-Auszeichnung noch einmal überdenken...

                  Nein, es geht nicht um die eingesetzte Technik, sondern um das Thema „Dein Projekt“; und hierzu genügt doch ein Thread.

                  Das halte ich für Quatsch!

                  Wozu existieren den verschiedenen Themenbereiche?
                  wozu kann man Themen ausblenden oder markieren?

                  Hier das hat mit JS zu tun, das andere war eine CSS Frage, aber es gibt kein Themenbereich "mein Projekt".

                  Und nur weil dieselbe Person Fragen zu verschiedenen Themen stellt, muss sie doch nicht in einem Thread bleiben bis er verschwunden ist.

                  Struppi.

                  1. puts "Hallo " + gets.chomp + "."

                    ?> Struppi
                    => Hallo Struppi.

                    Ja, ich habe überreagiert. Mea culpa.

                    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 -- Day 20: search.ini
                    Meine Browser: Opera 8.01 | Firefox 1.0.4 | Lynx 2.8.3 | Netscape 4.7 | IE 6.0
                    [Deshalb frei! - Argumente pro freie Software]
      2. hi,

        ich finde nur, dass mein CSS-Problem nichts - rein gar nichts mit meinem Javascript-Problem zu tun hat!

        wie kannst du dir da so sicher sein, so lange du noch gar nicht die ursachen _beider_ probleme kennst?

        Dass beide Probleme in ein und dem selben Projekt auftreten, ist reiner Zufall!

        oder auch nicht.
        auf jeden fall enthält der alte thread ggf. schon zusatzinformationen, die auch hier für die lösung wichtig sein könnten.
        der zusammenhang und die umgebungsbedigungen sind also im alten thread besser nachvollziehbar.

        bitte berücksichtige das beim nächsten mal, und bleib in deinem bestehenden thread zum thema.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. moin :)

          wie kannst du dir da so sicher sein, so lange du noch gar nicht die ursachen _beider_ probleme kennst?

          Wenn ich das jetzt so überdenke... mein Projekt umfaßt viele Bereiche. So zum Beispiel auch Java, Struts, Jsp,Javascript, HTML, CSS, SQL, Postscript und noch einiges mehr...
          Wenn ich morgen also ein Problem mit einer Java-Klasse habe, stell ich das in meinen CSS-Thread... koennt ja was damit zu tun haben ;)
          Und wenn dann alle mein Projekt von innen und aussen kennen - ist alles wunderbar nachvollziehbar *kicher*

          bitte berücksichtige das beim nächsten mal, und bleib in deinem bestehenden thread zum thema.

          mach ich glatt :) *salutier*

          liebe Grüße aus Berlin
          lina-
          PS: sorry, dass ich so garstig bin - aber ich glaube mittlerweile, dass wahsaga sich ein Skript zum Aufspüren von Doppelpostings gebastelt hat ;)

          --
          Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)
          1. PS: sorry, dass ich so garstig bin - aber ich glaube mittlerweile, dass wahsaga sich ein Skript zum Aufspüren von Doppelpostings gebastelt hat ;)

            Solange es die Arbeit eines Forumspolizisten erleichtert, ist das zulässig.

            Thilo

      • lina hat </faq/#Q-11> nicht gelesen, und bleibt nicht in ihrem thread.

      Das ist doch Unsinn!

      Ich finde auch, das das eine nichts mit dem anderen zu tun hat.

      Struppi.

    2. Hi,

      Ich find, dass beides unterschiedliche Fragen sind und ein neuer Thread durchaus gerechtfertigt war.

      IMHO ist es nicht sinnvoll, ein völlig neues Problem (womit keine Folgefragen gemeint sind) in einem alten Thread zu verstecken, bloß weil es auf derselben Webseite auftritt.

      Gruß,
      Gunnar

      --
      „Weisheit ist nicht das Ergebnis der Schulbildung, sondern des lebenslangen Versuchs, sie zu erwerben.“ (Albert Einstein)
      1. hi,

        Ich find, dass beides unterschiedliche Fragen sind und ein neuer Thread durchaus gerechtfertigt war.

        auch der erste thread drehte sich, obwohl unter "CSS" eingeordnet, um ein problem beim dynamischen erstellen von tabellen per JS.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. auch der erste thread drehte sich, obwohl unter "CSS" eingeordnet, um ein problem beim dynamischen erstellen von tabellen per JS.

          Aber ein, zumindest vermutetes, CSS Problem, bei dynamischen Zellen und dieses hier war doch ein entschieden anderes Problem.

          Struppi.

        2. moin :)

          Da würde mich jetzt wirklich mal interessieren, was meine Frage, ob <td> und <th> in CSS hierarchisch von einander abhängig sind, mit javascript zu tun hat...

          liebe Grüße aus Berlin
          lina-

          --
          Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)