innerHTML bei <table> klappt nicht, wenn ich eine FOR-Schleife anwende

  • Die frage hatte ich schon im anderen Forum gestellt aber leider keine befriedigende
    Antwort erhalten




    Mein Problem ist, dass die 3 presentierten Scripte genau das selbe ausführen müssen.
    Bloß "Script 2" Klappt nicht !!! ( Siehe Kommentar im Quellcode und Screenshot )


    ( siehet unerwünscht aus und es gibt performance probleme bei größeren zahlen )





    Mich Interessiert vorallem der Grund warum es nicht klappt !!! Warum es ausgerechnet
    auf die weise nicht klappt !!! Erscheint mir als völlig unlogisch !!!





    Brauche nähmlich den Programmierstil eventuell für ähnliche scripte. Desshalb wollte ich
    es mal nicht umgehen und verstehen, warum es so nicht geht wie erwünscht, wobei
    mir das auch als völlig unlogisch erscheint, wenn ich "Script 2" mit "Script 1" und "Script 3" vergleiche.
    Ich bitte also um Verständniss und um Hilfe.






    Ich danke schonmal im voraus !








    Und ja ! Es siehet sowohl auf den smartphone als auf dem pc gleich aus !!!
    Es ist also kein Browser fehler !


    [Blockierte Grafik: http://www7.pic-upload.de/13.11.13/qsawvzc4dedk.png]









    EDIT: Diesen Beitrag habe ich soeben jetzt, c.a 3 Tage nach der Erstellung des Beitrages, bearbeitet, weil im "Script 2" ein Semikolion zu viel war.
    Dennoch sind "keine" Veränderungen sichtbar. Scheint wohl eine Code Unreinheit gewesen zu sein die JavaScript toleriert. Also ignoriert die
    kleine Korrektur, denn sie hat keinerlei auswirkungen auf die Funktionsweise meines Codes, also weder negative gehabt noch positive bekommen.

  • Du rufst innerhalb der Schleife innerhtml auf und ersetzt immer den Inhalt der Vorher drin war. Sprich das TR-Element fällt weg. Hier solltest du besser in eine Variable schreiben und den Inhalt der Variablen anschliessend innerhtml zuweisen.
    Mit der dritten Funktion schreibst du lediglich Ausgaben hintereinander weg.


    Also innerhtml ersetzt Inhalte innerhalb des Elementes im DOM.
    write tätigt lediglich Ausgaben an der Stelle wo sich der Zeiger befindet.

  • Warum machst du das über innerHTML und nicht direkt über Objekte?
    for 1
    zeile erstellen
    for 2
    spalten für erstellte zeile erstellen und füllen
    end for 2
    end for 1



    so funzt Script 2 Variante bei mir ^^
    Ergebnis:
    0/0 0/1 0/2
    1/0 1/1 1/2
    2/0 2/1 2/2
    3/0 3/1 3/2
    4/0 4/1 4/2


    gut explanator war schneller :D

  • guten abend,


    erstmal möchte ich mich entschuldiegen, dass ich mich so verspätet wieder zurück melde. Hatte nähmlich nichtmal wochenende zeit.


    Und dann möchte ich mich bei euch für eure Antworten bedanken. Sowohl bei "Bleistift" als auch bei "explanator"


    Leider muss ich hinzusagen, dass ich bezüglich diesen Vorfall immernoch eine Wissenslücke habe, wo ich aber halt zumindest schon
    eine lösung von euch habe, die nicht mein Programmstil zumindest nicht wiederspricht.



    Und jetzt zur bleibenden Wissenlücke:
    wenn ich <table> durch <xmp> ersetze dann kommt folgendes raus
    wenn man es untereinander schreibt :





    mein Script
    der nicht funktioniert :(


    <tr>
    <td>1</td>
    <td>2</td>
    <td>3</td>
    </tr>


    <tr>
    <td>4</td>
    <td>5</td>
    <td>6</td>
    </tr>


    <tr>
    <td>7</td>
    <td>8</td>
    <td>9</td>
    </tr>






    Script von Bleistifft
    der wirklich funktioniert !


    <tr>
    <td>0/0</td>
    <td>0/1</td>
    <td>0/2</td>
    </tr>


    <tr>
    <td>1/0</td>
    <td>1/1</td>
    <td>1/2</td>
    </tr>


    <tr>
    <td>2/0</td>
    <td>2/1</td>
    <td>2/2</td>
    </tr>


    <tr>
    <td>3/0</td>
    <td>3/1</td>
    <td>3/2</td>
    </tr>


    <tr>
    <td>4/0</td>
    <td>4/1</td>
    <td>4/2</td>
    </tr>






    vielleicht müsste ich mich dann mit der der Aussage von "explanator" auseinandersetzen um das komplett zu verstehen, aber das auch halt erstaml so hinnehmen,
    egal wie unlogisch mir das "mit meinen jetztiegen wissenstand" erscheint



    Aber auf jeden fall dennoch vielen dank für eure hilfe und dennoch waren das schonmal aussagekräftiege antworten