• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Text austauschen

Hallo-Welt

Aktives Mitglied
Guten Abend,

Ich suche eben ein Script, welches ein Text-Element nach einer gewissen Zeit immer wieder austauscht, genauso, wie dies mit den Bildern in dieser Dokumnetation gemacht wird. Ich hab bereits versucht, das Script für Text umzuändern, so ist mir das bisher jedoch noch nicht gelungen. Wie müsste ich dieses also umändern? Wird "ImageArray" durch "TextArray" ausgetauscht? Was müsste ich sonst noch dabei beachten, oder geht das für Texte bzw. einzelne Wörter gar nicht so, und bräuchte man dafür ein ganz anderes Script? Wenn das so nicht geht, kann man dann villeicht einfach ein ganzes Script nach diesem Schema immer wieder austauschen, also z.B.
HTML:
<p><input name="hiddenbox" type="hidden" value="1" /></p>
durch
HTML:
<p><input name="hiddenbox" type="hidden" value="2" /></p>
auszutauschen, und so weiter?

Ich bin in Sachen JavaScript leider noch sehr unerfahren und wäre daher dankbar, wenn ihr nicht ganz so hart mit mit umgehen würdet.
Weiterhin bin ich aber für jede Antwort dankbar.
 
Du musst das Element als Objekt ansprechen, z.B. über eine ID:

Code:
document.getElementById("meineID")

und innerhalb des Objektes dann die gewünschte Eigenschaft ändern, z.B. so:

Code:
document.getElementById("meineID").value = "2";

Es kommt eben auch darauf an was Du ändern willst. Welches Attribut, welche Inhalte.
 
Moment mal. Das heißt, dass ich gar nichts am Code ändern müsste (abgesehen von der URL durch die Zahl natürlich), trotz dass da deutlich was von "Image" steht, und könnte so
HTML:
<p><input name="hiddenbox" type="hidden" value="1" /></p>
durch
HTML:
<p><input name="hiddenbox" type="hidden" value="2" /></p>
etc. austauschen?
 
Okay,angenommen,ich hätte folgendes in meiner HTML-Datei stehen:
HTML:
<p><input id="Foto01" name="hiddenbox" type="hidden" value="1" /></p>
und folgendes in der eingebundenen JS-Datei
Code:
// Anzeigezeit in ms
var WechselZeit = 2000;

ImageArr = new Array()

// URL der Bilder  hier eintragen
ImageArr[ImageArr.length] = "2";
ImageArr[ImageArr.length] = "3";
ImageArr[ImageArr.length] = "4";
ImageArr[ImageArr.length] = "5";
ImageArr[ImageArr.length] = "6";
ImageArr[ImageArr.length] = "7";
ImageArr[ImageArr.length] = "8";

var xAnzahl = ImageArr.length;
var xCounter=-1;

function Bildwechsel01() {
xCounter = xCounter+1;
  if (xCounter < xAnzahl) {
     document.getElementById('Foto01').src = ImageArr[xCounter];
     setTimeout ("Bildwechsel01()",WechselZeit);
     }
  else {
     xCounter = -1;
     Bildwechsel01();
     }
}

// Startverzögerung
setTimeout('Bildwechsel01()', 4000);
, sollte dann
HTML:
<p><input id="Foto01" name="hiddenbox" type="hidden" value="1" /></p>
durch
HTML:
<p><input id="Foto01" name="hiddenbox" type="hidden" value="2" /></p>
und das wiederum durch
HTML:
<p><input id="Foto01" name="hiddenbox" type="hidden" value="3" /></p>
etc. ersetzt werden? Den bei mir funktioniert das irgendwie nicht. Was müsste ich also noch ändern, bzw.anpassen, dass das funktioniert?
 
Was für ein Chaos! Du willst ein Value ändern und im JavaScript wird von Images gesprochen! :(
Außerdem wird im JavaScript ein Image ausgetauscht, aber kein Value. Das sieht mir nach blindem Copy/Paste aus, ohne zu verstehen, was da passiert.
 
Code:
<p><input id="Foto01" name="hiddenbox" type="hidden" value="1" /></p>

$('[name="hiddenbox"]').val(); //Gibt den aktuellen Wert 1 zurück
$('[name="hiddenbox"]').val('2'); //Ändert den Wert auf 2
 
@bdt600: So ungefähr hab ich das ja auch gemacht.Ich hab mich ja auch gewundert, ob das wirklich so gehen soll. Aber da lag wohlein Missverständnis vor. Und verstehen tue ich das Scriptnur so halb.

@Tronjer: Vielen Dank. Ist es so denn jetzt richtig:
Code:
// Anzeigezeit in ms
var WechselZeit = 2000;
ImageArr = new Array()
// URL der Bilder  hier eintragen
$('[name="hiddenbox"]').val(); //Gibt den aktuellen Wert 1 zurück
$('[name="hiddenbox"]').val('2'); //Ändert den Wert auf 2
$('[name="hiddenbox"]').val('3'); //Ändert den Wert auf 3
$('[name="hiddenbox"]').val('4'); //Ändert den Wert auf 4
$('[name="hiddenbox"]').val('5'); //Ändert den Wert auf 5
$('[name="hiddenbox"]').val('6'); //Ändert den Wert auf 6
$('[name="hiddenbox"]').val('7'); //Ändert den Wert auf 7
$('[name="hiddenbox"]').val('8'); //Ändert den Wert auf 8
var xAnzahl = ImageArr.length;
var xCounter=-1;
function Bildwechsel01() {
xCounter = xCounter+1;
  if (xCounter < xAnzahl) {
     document.getElementById('Foto01').src = ImageArr[xCounter];
     setTimeout ("Bildwechsel01()",WechselZeit);
     }
  else {
     xCounter = -1;
     Bildwechsel01();
     }
}
// Startverzögerung
setTimeout('Bildwechsel01()', 4000);
Denn jetzt steht immer noch was von "ImageArr" da. Was wäre denn der richtige String hierfür?
 
Dein Script erzeugt ein leeres Array und setzt alle Values der HTML-Elemente mit dem Attribut name="hiddenbox" auf 8.
 
Hmm... Und wie kann ich denn dafür sorgen, dass er diese immer erst nach dem festgelgtem Wert, in diesem Fall also 2 Sekunden der Reihe nach austauscht? Denn das ist ja der Sinn der ganzen Sache.
 
Du benötigst ein Array mit den Strings, die dem HTML zugewiesen werden sollen und eine Counter Variable, die mit 0 intialisiert wird. Die 0 steht für das erste Element im Array. Dann schreibst du eine Funktion, die dem entsprechenden HTML-Tag das Array-Element zuweist, also bsw. $('[name="hiddenbox"]').val(myArray[counter]) und danach den counter um 1 erhöht. Des Weiteren eine if-Abfrage die den Counter wieder auf 0 zurücksetzt, wenn sein Wert der Anzahl der Array-Elemente entspricht. Diese Funktion rufst du mit einem Timing-Event auf.
 
Oh, vielen dank dafür. Und mit "val" könnte ich dann die value ansprechen, richtig? Ich glaube, ich hab's verstanden :D

Dann schau ich mal, wie ich das soweit umgesetzt bekomme. Ich bedanke mich auf jeden Fall bei euch allen für eure Mühe.
 
Zurück
Oben