wib: DOM-Kram im IE

Hi, Firefox schafft's ohne Murren, IE tut einfach nichts, auch ohne Murren. Es geht um eine Tabelle mit Spielkarten drin, die da relativ dynamisch ins Dokument gebastelt wird. Hier der wichtige Teil des Scripts:

var loc = document.getElementById("cards"); // ein <div>
      var childNodes = loc.childNodes.length;
      for(var i = 0; i < childNodes; ++i) {
        loc.removeChild(loc.childNodes[0]); // löscht alles in dem div
      }
      var cid = 0; // Zähler
      var table = document.createElement("table");
      loc.appendChild(table);
      for(var i = 0; i < properties[1]; ++i) { // properties enthält die Maße der Tabelle...
        var tr1 = document.createElement("tr");
        table.appendChild(tr1);
        for(var k = 0; k < properties[0]; ++k) {
          var td = document.createElement("td");
          tr1.appendChild(td);
          if(typeof(cards[cardsArr[cid]]) != "undefined") { // Falls es mehr Zellen als Karten gibt.
            var card = document.createElement("img");
            var attr = document.createAttribute("src");
            attr.nodeValue = "img/" + cards[cardsArr[cid]]["file"];
            var title = document.createAttribute("title");
            title.nodeValue = cards[cardsArr[cid]]["name"];
            card.setAttributeNode(title);
            td.appendChild(card);
            card.setAttributeNode(attr);
            card.style.width = "109px";
            card.style.height = "156px";
          }
          cid++;
        }
      }

MFG WIB

  1. Hallo Wib,

    dieses Phänomen glaube ich auch schon mal beobachtet zu haben. Wenn ich mich recht entsinne sollte es im umgekerten Wege gehen:

    • erstelle Tabelle
    • erstelle Zeile
    • erstelle Zellen
    • weise Zellen eigenschaften zu
    • hänge Zellen in Zeile ein
    • hänge Zeile in in Tabelle ein
    • hänge Tabelle in Dokument ein

    Der IE scheint Probleme mit bereis eingehangenen Elementen zu haben...

    Gruß aus Berlin!
    eddi

  2. Hi,

    ie braucht unterhalb von table noch tbody.

    Gruesse, Joachim

    --
    Am Ende wird alles gut.
  3. var table = document.createElement("table");

    Der Tabelle musst du noch ein Element tbody spendieren.

    table.appendChild(tr1);

    und diesem dann die Unterelemente zufügen.

    Struppi.