2017-01-31 4 views
1

Donc, fondamentalement, j'essaie de faire en sorte que la page Web vous invite continuellement à entrer un nombre jusqu'à ce que vous entrez -1. Ensuite, il s'arrêtera et affichera les tables de multiplication de tous les numéros précédents que vous avez entrés.Créer une pause entre les invites avec Javascript

C'est ce que j'ai jusqu'ici et je ne sais pas vraiment où aller à partir d'ici.

<script> 
    var num = prompt("Enter Number", "0") 

    var num = parseInt(num); 
    var i = 0; 

    document.write('<table ="1">'); 
    for (i = 1; i < 13; i++) { 
     document.write("<tr><td>" + num + " x " + i + " = " + num * i + "</td></tr>"); 
    } 

    document.write("</table>"); 

    var num = prompt("Enter Number", "0") 

    document.write('<table ="1">'); 
    for (i = 1; i < 13; i++) { 
     document.write("<tr><td>" + num + " x " + i + " = " + num * i + "</td></tr>"); 
    } 

    document.write("</table>"); 

    var num = prompt("Enter Number", "0") 

    document.write('<table ="1">'); 
    for (i = 1; i < 13; i++) { 
     document.write("<tr><td>" + num + " x " + i + " = " + num * i + "</td></tr>"); 
    } 

    document.write("</table>"); 


</script> 
+1

A 'boucle while' sera votre ami ici. – chazsolo

Répondre

2

Utilisez une boucle do...while. Le code ci-dessous utilise également Document.createElement() pour créer des éléments DOM, document.createTextNode() et Node.appendchild() pour les ajouter à un élément conteneur au lieu d'utiliser document.write().

document.addEventListener('DOMContentLoaded', function() { 
 
    var num; 
 
    var container = document.getElementById('container'); 
 
    do { 
 
    num = prompt("Enter Number", "0"); 
 
    if (num > 0) { 
 
     var table = document.createElement('table'); 
 
     for (i = 1; i < 13; i++) { 
 
     var row = document.createElement('tr'); 
 
     var cell = document.createElement('td'); 
 
     cell.appendChild(document.createTextNode(num + " x " + i + " = " + num * i)); 
 
     row.appendChild(cell); 
 
     table.appendChild(row); 
 
     } 
 
     container.appendChild(table); 
 
    } 
 
    } while (num > 0); 
 
});
td { 
 
    border: 2px solid #f00; 
 
    color: #00f; 
 
}
<div id="container"> 
 
</div>

1

similaires au poste précédent, a simplement commenté au diable et disparu. Et oui, évitez document.write - c'était génial dans les livres du début des années 2000, mais il est obsolète et dans de nombreux cas va se briser. J'ai également supposé, quand vous dites des tables de multiplication, que vous voulez itérer sur le nombre d'entrée et créer une table complète à ce nombre. Ainsi, les deux boucles internes: une pour le nombre d'entrée et une pour jusqu'à douze itérations.

Bonne chance pour cette classe!

var num = 0, total = 0; 
 

 
num = parseInt(prompt("Enter Number or -1 to end", 0)); 
 
// Keep doing this loop until -1 is entered. 
 
while (num != -1){ 
 
// Create a table element, but don't add it yet. 
 
var myTable = document.createElement("table"); 
 
    // This line loops to the prompted number... 
 
    for (var i=0; i<=num; i++){ 
 
    // ... and creates each ROW of the table 
 
    var myTr = document.createElement("tr"); 
 
    // this line loops for 12 iterations.. 
 
    for (var j=0; j<13; j++){ 
 
     // and creates and adds each TD element to the current row 
 
     var myTd = document.createElement("td"); 
 
     myTd.innerHTML = j+" * "+i+" = "+j*i; 
 
     myTr.appendChild(myTd); 
 
    } 
 
    // Having added all the TDs to the row, we add the row to the table 
 
    myTable.appendChild(myTr); 
 
    } 
 
    // Having added all the rows to the table, we can add the table to the document! 
 
document.body.appendChild(myTable); 
 
// And now ask for another number to make another table, either starting 
 
// the loop again or breaking out. 
 
num = parseInt(prompt("Enter Number or -1 to end", "0")); 
 
}
table { 
 
    border: 1px dotted red; 
 
    font-family: sans-serif; 
 
    font-size: 9px; 
 
}