dom-problem

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • dom-problem

    Hallo zusammen,

    hier mein Anliegen: Ich mache einen Ajax-Aufruf über Prototype auf den Server, der mir ein Array im JSON-Format mit Daten zurückliefert. Die Daten möchte ich in eine Tabelle eintragen, die ich vorher leeren will. Da ich noch nie ein große Kenner von Dom und so weiter war, hab ich das ganze dom-unkonform versucht mit innerHTML zu lösen, nicht wissend, dass das beim IE in Tabellen nicht funktioniert, also doch DOM. Ich hab mich mal daran gesetzt und mir das ganze zurechtgebastelt, hier mein Ansatz, der im Firefox wunderbar funktioniert, aber im IE keine Wirkung zeigt :-( kann mir jemand n Tipp geben, warum das im IE nicht ankommt??? ID´s und AJAX-Aufruf + Rückgabe funktioniert einwandfrei im IE, hab durchgebuggt mit alert-Ausgaben, aber irgendwann hängt er sich auf :-(

    hier die Funktion, mit der ich die Tabelle leere:
    PHP-Code:
    while(document.getElementById("answerTable").rows.length>0) {
        
    document.getElementById("answerTable").deleteRow(0);

    und hier meine Antwort-Funktion:
    PHP-Code:
    function answer(transportjson)
    {
        var 
    i=0;
        
    table document.getElementById("ajax_answer");
        for(
    i=0;i<json["ANZAHL"];i++) {
            
    trNode document.createElement("tr");
            
    td1 document.createElement("td");
            
    text1 document.createTextNode(json[i]["PAGE_ID"]);
            
    td2 document.createElement("td");
            
    text2 document.createTextNode(json[i]["SUMME"]);
            
    td1.appendChild(text1);
            
    td1.style.width "50%";
            
    td2.appendChild(text2);
            
    td2.style.width "50%";
            
    trNode.appendChild(td1);
            
    trNode.appendChild(td2);
                    
    document.getElementById("answerTable").appendChild(trNode);
        }


  • #2
    hab durchgebuggt mit alert-Ausgaben, aber irgendwann hängt er sich auf :-(
    Dann finde doch erstmal heraus, wo genau "er" sich aufhängt.

    Kommentar


    • #3
      der ie geht korrekt alle schritte durch, "hängt" sich nirgendwo auf, jedoch macht er mir den neuen tr-knoten nicht in die vorhande tabelle rein!

      EDIT:
      laut IE Developer Toolbar sind die Knoten im Dom integriert, mit den richtigen Werten an der richtigen Stelle, nur angezeigt werden sie nicht :-(
      Zuletzt geändert von Mercury1987; 15.10.2008, 14:27.

      Kommentar


      • #4
        online-beispiel verfügbar? oder den kompletten code? der ie ist ziemlich eigen bei dom-manipulationen. da braucht man den kompletten code.

        peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          den code hab ich oben doch schon stehen, das einzige was da fehlt ist halt die tabelle an sich. die ist folgendermaßen:

          PHP-Code:
          <table style="width:100%" id="answerTable">
          </
          table
          und dazu noch der ajax-aufruf, der ja funktioniert. der kommt aus einem select-feld mit onchange=ajax-funktions-aufruf

          Kommentar


          • #6
            Re: dom-problem

            Original geschrieben von Mercury1987
            Da ich noch nie ein große Kenner von Dom und so weiter war, hab ich das ganze dom-unkonform versucht mit innerHTML zu lösen, nicht wissend, dass das beim IE in Tabellen nicht funktioniert, also doch DOM.
            Die innerHTML-Methode funktioniert tadellos im IE und ist vor allem auch noch die Schnellste.
            Ich hatte mal eine geschachtelte Liste mit über 1000 Einträgen per DOM generiert und im IE gab es da immer eine Timeoutmeldung - im FF hat es nicht mal eine Sekunde gedauert. Letztendlich habe ich dann alles auf die Beschriebene innerHTML 2 - Variante (Push strings into array, then join array) umgestellt.

            Siehe hier: Benchmark - W3C DOM vs. innerHTML

            Kommentar

            Lädt...
            X