Michael: Zufallstext bei denen ein Teil des Textes anders ist

Hi,
ich habe ein kleines Problem, bei dem ihr mir vielleicht weiter helfen könnt.
Folgendes script habe ich für einen Zufallstext:

<head>
<script language="JavaScript">
<!--
var z= 3;
quotes = new Array(z);
quotes[0] = "Zufall 0"
quotes[1] = "Zufall 1"
quotes[2] = "Zufall 2"
//-->
</script>
</head>
<body bgcolor="#008280">
<P><b><FONT color=#ffcc00 size=6>

</FONT></b>&nbsp;</P>
<script language="JavaScript">
<!--
var jetzt=new Date();
var z=(jetzt.getSeconds())%3;
document.write("<font face='comic sans ms' > <font color='#ffcc00' size='6'>" + quotes[z] +"</font>");
//-->
</script>
</body>

So, jetzt will ich aber das Der Text "Zufall 0" noch eine weiteren Text bekommt, der aber in einer anderen Schriftgröße und Schriftfarbe erscheint, eventuell auch kursiv geschrieben. Dieser Text darf aber nur dann erscheinen, wenn auch der Text "Zufall 0" erscheint.

Vergleichbar ist das vielleicht mit einem Zitat. Nach dem Zitat steht der Name dessen, der zitiert wird.

Nur mit dem script ist das nicht möglich. Oder ich hab einfach was falsch gemacht.

Hoffe ihr könnt einem Laien helfen.

Gruß

Michael

  1. Hello out there!

    <head>

    Start- und End-Tag des 'html'-Elements sind zwar in HTML 4.01 optional, sollten aber nicht weggelassen werden.

    Nicht weggelassen werden sollte auch die DOCTYPE-Deklaration.

    Außerdem fehlt bei dir das 'title'-Element, welches nicht optional, sondern Pflicht ist.

    <script language="JavaScript">

    Dort fehlt das 'type'-Attribut, ebenfalls Pflicht. Das 'language'-Attribut hingegen ist überflüssig.

    <!--

    Die Auskommentierung des JavaScript-Quelltextes ist auch überflüssig.

    var z= 3;
    quotes = new Array(z);
    quotes[0] = "Zufall 0"
    quotes[1] = "Zufall 1"
    quotes[2] = "Zufall 2"

    Und bei Änderungen willst du die Anzahl der Texte zählen und angeben? Wozu?

    Lass die erste Zeile weg und die ändere die zweite in

    var quotes = new Array();

    Noch flexibler wird es so:

    var quotes = new Array();  
    var i = 0;  
    quotes[i++] = "Zufall 0";  
    quotes[i++] = "Zufall 1";  
    quotes[i++] = "Zufall 2";
    

    Das Weglassen der ';' am Zeilenende ist in JavaScript zwar möglich, aber nicht anzuraten.

    //-->

    Siehe oben.

    <body bgcolor="#008280">

    Hier beginnt schon die Ursache des Übels. Beschäftige dich mit CSS! Zeichne mit HTML nur die Struktur deines Dokuments aus und mache alle Darstellungsangaben im Stylesheet!

    Dein Script könnte dann so aussehen:

    var quotes = new Array();  
    var i = 0;  
    quotes[i++] = "<q>To do is to be.</q><cite>Socrates</cite>";  
    quotes[i++] = "<q>To be is to do.</q><cite>Sartre</cite>";  
    quotes[i++] = "<q>Do be do be do.</q><cite>Sinatra</cite>";  
      
    var jetzt = new Date();  
    var z = jetzt.getSeconds() % i;   // i == quotes.length  
    document.write(quotes[z]);
    

    Die Formatierung der 'q'- und 'cite'-Elemente wie gesagt mit CSS.

    See ya up the road,
    Gunnar

    --
    „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
  2. Hallo Michael,

    vorab: Du solltest Dich schnellstens mit den Grundlagen von HTML, CSS und Javascript beschäftigen!

    <head>

    doctype fehlt!

    <script language="JavaScript">

    für language interessiert sich niemand mehr, type="text/javascript" fehlt.

    <!--

    wir sind im 3. Jahrtausend angekommen!

    var z= 3;
    quotes = new Array(z);
    quotes[0] = "Zufall 0"
    quotes[1] = "Zufall 1"
    quotes[2] = "Zufall 2"

    hier könnte ein zweites Array hin:

    quotes2 = new Array(z)
    quotes2[0]= ...
    ...

    ein 2d-Array, also ein Array von Arrays, wäre natürlich viel eleganter.

    //-->
    </script>
    </head>
    <body bgcolor="#008280">
    <P><b><FONT color=#ffcc00 size=6>

    </FONT></b>&nbsp;</P>
    <script language="JavaScript">
    <!--
    var jetzt=new Date();
    var z=(jetzt.getSeconds())%3;

    Zufallszahlen werden besser mit Math.floor() und Math.random() erzeugt

    p = Math.floor(Math.random()*z) ;

    document.write("<font face='comic sans ms' > <font color='#ffcc00' size='6'>" + quotes[z] +"</font>");

    document.write("<span id='zuftext'><span id='zuf1'>"+quotes[p]+"</span><span id='zuf2'>"+quotes2[p]+"</span></span>");

    //-->
    </script>
    </body>

    die SPANs kannst Du dann mit CSS schön formatieren. Statt IDs kannst Du auch Klassen nehmen.
    Meine Vorschläge sind nicht getestet, Tipp- und andere Fehler sind möglich.

    Gruß, Jürgen