Random Ausgabe

sentenz

Grünschnabel
Hey,

ich hänge seit gut einem Tag an dem Problem und weiß einfach nicht mehr weiter.

Meine Wunschvorstellung:
Ich drücke auf einen erstellten Button und dieser liefert mir zufälliger weise einen Spruch zurück

Meine Umsetzung:
Ich habe eine variable erstellt die mir random eine zahl zwischen 1-10 ausgibt diese zahl wollte ich mithilfe einer switch case anweisung einen spruch zuordnen. irgendwie bzw irgendwo hab ich einen fehler drinnen kann auch sein, dass nach der umstellung der ganze code schon kaput ist :/ ich hoffe hr könnt mir weiter helfen. Ich entschuldige mich schonmal für die schlechte formatierung und meine fehler :(

ich danke euch schonmal im vorraus
Code:
<button onclick="myFunction()">Generiere Hochzeitsspruch</button>
		<p id="demo" style="font-family:Arial,sans-serif; font-size:18px; color:white"></p>
		<script type="text/javascript">
function myFunction()
{
var x;
x.innerHTML=Math.floor((Math.random()*100)+1);
document.getElementById("demo").innerHTML=x;

switch (x.innerHTML)
  {
			case 1:
				<p style="font-family:Arial,sans-serif; font-size:18px; color:white">1</p>;
				break;
			case 2:
				<p style="font-family:Arial,sans-serif; font-size:18px; color:white">2</p>;
				break;
			case 3:
				<p style="font-family:Arial,sans-serif; font-size:18px; color:white">3</p>;
				break;
			case 4:
				<p style="font-family:Arial,sans-serif; font-size:18px; color:white">4</p>;
				break;
			case 5:
				<p style="font-family:Arial,sans-serif; font-size:18px; color:white">5</p>;
				break;
			case 6:
				<p style="font-family:Arial,sans-serif; font-size:18px; color:white">6</p>;
				break;
			case 7:
				<p style="font-family:Arial,sans-serif; font-size:18px; color:white">7</p>;
				break;
			case 8:
				<p style="font-family:Arial,sans-serif; font-size:18px; color:white">8</p>;
				break;
			case 9:
				<p style="font-family:Arial,sans-serif; font-size:18px; color:white">9</p>;
				break;
			case 10:
				<p style="font-family:Arial,sans-serif; font-size:18px; color:white">10</p>;
				break;
  }
}
</script>
 
Hey,

also ich denke nicht, dass du mit den <p style="font-family:....." weiterkommst. Du musst den Spruch (oder in deinem Fall noch die Zahlen) beim Element selbst setzen mit:

document.getElementById("demo").innerHTML = '<p style="font-family:Arial,sans-serif; font-size:18px;">Spruch 5</p>';

außerdem hast du die Schrift auf weiß gesetzt, sodass man sie mit deinem Code nicht lesen kann.

weiters habe ich die Zeile --> document.getElementById("demo").innerHTML=x;
gestrichen, weil sie nur die Zahl hinzufügt und keinen Spruch!?
auch deine Berechnung deiner Zufallszahl von 1-10 ist falsch --> hier die richtige: x = Math.floor(Math.random()*100 + 1;

Um dann den Spruch einzufügen, könntest du ein Array anlegen und darin die Sprüche speichern und dann einfach mit
document.getElementById("demo").innerHTML=myArray[x];

ich habe hier ein kleines Beispielprogramm:
Code:
<button onclick="myFunction()">Generiere Hochzeitsspruch</button>
        <p id="demo" style="font-family:Arial,sans-serif; font-size:18px;"></p>
        <script type="text/javascript">
function myFunction()
{

var myArray = new Array();
myArray[0] = "Mein 1.Spruch";
myArray[1] = "Mein 2.Spruch";
myArray[2] = "Mein 3.Spruch";
myArray[3] = "Mein 4.Spruch";
myArray[4] = "Mein 5.Spruch";
var x = Math.floor(Math.random()*5) + 1;
 
switch (x)
  {
            case 1:
                document.getElementById("demo").innerHTML = myArray[0];
                break;
            case 2:
                document.getElementById("demo").innerHTML = myArray[1];
                break;
            case 3:
                document.getElementById("demo").innerHTML = myArray[2];
                break;
            case 4:
                document.getElementById("demo").innerHTML = myArray[3];
                break;
            case 5:
                document.getElementById("demo").innerHTML = myArray[4];
                break;
  }
}
</script>

lg
 
Da ist das switch doch vollkommen überflüssig?
Javascript:
var MyArray = new Array();
MyArray[0] = "MeinSpruch 1";
MyArray[1] = "MeinSpruch 2";
MyArray[2] = "MeinSpruch 3";

var random = Math.floor(Math.random()*MyArray.length);
document.getElementById("demo").innerHTML = MyArray[random];

Funktioniert jetzt mit beliebig vielen Elementen im Array.
 
Zurück