2016-06-10 25 views
1

I m trying to create an element(image) and then set a loop that would produce 5 images in one div(its id="leftSide"). Here ist mein Code:Wie erstellt man ein Element in einer Schleife und hängt es (5 Mal nacheinander) an das jeweilige div an?

<script>  
    var number_of_faces = 0; 
    var theLeftSide = document.getElementById("leftSide"); 

    function generate_faces() { 
     for (number_of_faces = 0; number_of_faces < 6; number_of_faces++) { 
      newFace = document.createElement("img"); 
      newFace.setAttribute(
       "src", 
       "http://home.cse.ust.hk/~rossiter/mooc/matching_game/smile.png" 
      ); 
      document.getElementById("leftSide").appendChild("img"); 
     } 
    } 


</script> 

Körper onload hat die Funktion zu nennen, aber es passiert nichts. Div bleibt "leer"

Antwort

2

Versuchen Sie diesen Code

<!DOCTYPE html> 
<html> 
<head> 
    <title>Blah</title> 
</head> 
<body> 
<div id="leftSide"> 

</div> 
<script>  
    var number_of_faces = 0; 
    var theLeftSide = document.getElementById("leftSide"); 

    function generate_faces() { 
     for (number_of_faces = 0; number_of_faces < 5; number_of_faces++) { 
      newFace = document.createElement("img"); 
      newFace.setAttribute(
       "src", 
       "http://home.cse.ust.hk/~rossiter/mooc/matching_game/smile.png" 
      ); 
      theLeftSide.appendChild(newFace); 
     } 
    } 
    generate_faces(); 


</script> 
</body> 
</html> 
+0

Was machst du damit: 'var theLeftSide = document.getElementById (" leftSide ");' warum behaltst du es, wenn du es nicht benutzt? ? –

1

Änderung document.getElementById("leftSide").appendChild("img"); mit document.getElementById("leftSide").appendChild(newFace);

+0

vielen Dank! Eine weitere Frage: wird der leere Platz zwischen der Schleife und den geschweiften Klammern (ohne Code): document.getElementById ("leftSide"). AppendChild ("img"); }} beeinflussen, dass die Rückgabe der Funktion nicht definiert ist? –

+0

Oder besser-more 'theLeftSide.appendChild (newFace);' sonst gibt es keinen Sinn, diese Codezeile in der Deklaration zu behalten. –

+0

Nein, der leere Bereich oder Leerraum beeinflusst den Code in diesem Fall nicht – monterico

1

Sie eine Zeichenfolge "img" übergeben, anstatt die Newface Element.
Verwenden Sie document.getElementById("leftSide").appendChild(newFace);
und die Schleife sollte < 5 Schleife 5 mal sein.