Matthias: createElement soll 2 oder 3 Elemente bilden

Ich habe versucht mit createElement zwei Absätze zu erzeugen, bekomme die beiden Inhalte aber nur in ein Element p.

Hier die Seite:
http://www.jsr-hersbruck.de/site/beispiel/create-versuch.php

  
var myp = document.createElement("p");  
var myText = document.createTextNode("Eine sehr dynamische Seite");  
myp.appendChild(myText);  
var Ausgabebereich = document.getElementById("Bereich");  
Ausgabebereich.appendChild(myp);  
myp.onclick = function(){DoSomething()}  
function DoSomething(){  
alert('hallo');  
}  
var myp2 = document.createElement("p");  
var myText2 = document.createTextNode("zweiter Absatz");  
myp.appendChild(myText2);  
var Ausgabebereich2 = document.getElementById("Bereich");  
Ausgabebereic2h.appendChild(myp2);  
myp2.onclick = function(){DoSomething2()}  
function DoSomething2(){  
alert('hallo2');  
}

Gibt es eine Lösung zwei oder mehr Elemente zu erzeugen?
Gibt es noch eine einfachere Möglichkeit Text und onclick-Funktionen mittels JavaScript zu erzeugen?

Vielen Dank im Voraus
Matthias

  1. Lieber Matthias,

    da fehlt eine Ziffer 2:

    var myp = document.createElement("p");

    ...

    myp.appendChild(myText2);

      
    Wenn Du myp2.appendChild(...) notierst, sollte der Inhalt im zweiten Textabsatz landen.  
      
    
    > Gibt es eine Lösung zwei oder mehr Elemente zu erzeugen?  
      
    Dazu benutzt man Schleifen. Beispiel:  
      
    ~~~javascript
    function insert_paragraphs () {  
        var id = "vorgaenger";  
        var texte = [  
            "Hier steht ein Absatz.",  
            "Hier steht noch ein Absatz.",  
            "Hier steht schon wieder ein Absatz."  
        ];  
        var i, p;  
      
        var e = document.getElementById(id);  
      
        if (e) {  
      
            for (i = 0; i < texte.length; i++) {  
                p = document.createElement("p");  
                p.appendChild(document.createTextNode(texte[i]));  
      
                e.parentNode.insertBefore(e, p);  
            }  
        }  
    }
    

    Ist ungetestet, sollte aber verdeutlichen, was ich meine.

    Gibt es noch eine einfachere Möglichkeit Text und onclick-Funktionen mittels JavaScript zu erzeugen?

    Wie einfach hättest Du's denn gerne? Für solche Fälle schreibe ich mir passende Funktionen...

    Liebe Grüße,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
    1. Wenn Du myp2.appendChild(...) notierst, sollte der Inhalt im zweiten Textabsatz landen.

      Mist, nur ein Tippfehler, wie peinlich!

      Dazu benutzt man Schleifen. Beispiel:

      vielen Dank, das werde ich ausprobieren!

      Wie einfach hättest Du's denn gerne? Für solche Fälle schreibe ich mir passende Funktionen...

      Bis jetzt überlege ich wie ich 3 Absätze oder Links erzeuge, die dann mittels onclick jeweils eine andere Funktion aufrufen. Die Schleife mit dem array ist schon super, da man sich so die Deklaration einer Unzahl von Variablen spart!

      Vielen Dank!
      Matthias

  2. Meine Herren,

    Gibt es noch eine einfachere Möglichkeit Text und onclick-Funktionen mittels JavaScript zu erzeugen?

    Siehe molily über Event-Delegation.