![]() |
SELFHTML Forumsarchiv |
|
|
Die folgende Nachricht zum Thema stammt von: Thomas, 30. 08. 2003, 19:58
Hallo zusammen - ich verzweifle seit Tagen an einem kleinen Javascript-Problem, zu dem es bestimmt eine völlig simple Lösung gibt.
Ich muss eine Objektbezeichnung dynamisch zusammensetzen.
Also nicht:
document.bildname.src="pfeil.gif"
sondern bildname soll in einer Loop durch ein Präfix plus dem Index der Loop zusammengesetzt werden.
Also sowas wie
for(var i=0; i<concernedLayers.length; i++) {
document.xyz+i.src="pfeil.gif";
}
D.h. die Image-Ansprache soll loopen über xyz0, xyz1, xyz2 etc.
Auch mit dieser eval-Funktion habe ich's nicht geschafft.
Any ideas?
Die folgende Nachricht zum Thema stammt von: Thomas Meinike, 30. 08. 2003, 20:07
Hallo,
»» sondern bildname soll in einer Loop durch ein Präfix plus dem Index der Loop zusammengesetzt werden.
»» Also sowas wie
»»
»» for(var i=0; i<concernedLayers.length; i++) {
»» document.xyz+i.src="pfeil.gif";
document.images["xyz"+i].src="pfeil.gif";
»» }
MfG, Thomas
Die folgende Nachricht zum Thema stammt von: benji, 30. 08. 2003, 20:15
»» Hallo,
»»
»» »» sondern bildname soll in einer Loop durch ein Präfix plus dem Index der Loop zusammengesetzt werden.
»» »» Also sowas wie
»» »»
»» »» for(var i=0; i<concernedLayers.length; i++) {
»» »» document.xyz+i.src="pfeil.gif";
»» document.images["xyz"+i].src="pfeil.gif";
»» »» }
»»
»» MfG, Thomas
oder so
Die folgende Nachricht zum Thema stammt von: benji, 30. 08. 2003, 20:13
Hallo !
»» Auch mit dieser eval-Funktion habe ich's nicht geschafft.
»» Any ideas?
Ja: benutze die eval-funktion richtig :) ALSO:
»» for(var i=0; i<concernedLayers.length; i++) {
»» document.xyz+i.src="pfeil.gif";
»» }
Also:
»» document.xyz+i.src="pfeil.gif";
eval("document.xyz" + i + ".src = \"pfeil.gif\";");
so muss das aussehen. eval macht also z.B. sowas:
var 1 = "alert(\"";
var text = "Hallo";
var 2 = "\");";
eval(1 + text + 2);
»» D.h. die Image-Ansprache soll loopen über xyz0, xyz1, xyz2 etc.
also was soll eigentlich dein document.xyz1.src ? Ein Bild kannst du so nicht ansprechen. Eher so: document.images[1] oder so: document.getElementbyId("xyz1") - ich denke, das willst du machen, oder so: document.getElementbyname("namedesobjekts"), naja, kannst es auch mit all machen, ist aber dumm (geht nur unter IE).
Letztenendes bekommst du dein Bild
<img src="vorher.gif" id="xyz1">
auf jeden fall damit:
eval("document.getElementbyId(\"xyz" + i + "\").src = \"pfeil.gif\";");
nacher zu src="pfeil.gif" !
»» Auch mit dieser eval-Funktion habe ich's nicht geschafft.
Jetzt schon :)
»» Any ideas?
schon gegeben ;)
benji
Die folgende Nachricht zum Thema stammt von: Thomas Meinike, 31. 08. 2003, 10:27
Hallo,
»» so muss das aussehen. eval macht also z.B. sowas:
»»
»» var 1 = "alert(\"";
»» var text = "Hallo";
»» var 2 = "\");";
»»
»» eval(1 + text + 2);
Variablennamen duerfen nicht aus Ziffern bestehen und auch nicht damit beginnen.
»» auf jeden fall damit:
»»
»» eval("document.getElementbyId(\"xyz" + i + "\").src = \"pfeil.gif\";");
»»
»» nacher zu src="pfeil.gif" !
Abgesehen davon, dass es noch immer getElementById lautet, ist auch hier eval() voellig ueberfluessig:
document.getElementById("xyz"+i).src="pfeil.gif";
MfG, Thomas
Die folgende Nachricht zum Thema stammt von: benji, 31. 08. 2003, 21:34
Ja ok, auf solche Kleinigkeiten sollte man mal nicht achten...
Im grunde genommen egal.
benji
© 1998-2008
Impressum, Software: Classic Forum