Funktion innerHTML mit Parametern aufrufen
Timm Riesenberg
- javascript
Hallo Leute
ich habe eine dringende Frage.
Ich habe folgendes Skript aus SelfHTML.
<html><head><title>Test</title>
<script language="JavaScript">
var Neu = "neuer <b>fetter</b> Text";
function Aendern()
{ document.all.meinAbsatz.innerHTML = Neu; }
</script>
</head><body>
<p id="meinAbsatz">Text</p>
<a href="javascript:Aendern()">Anderer Text</a>
</body></html>
Dieses funktioniert wunderbar so wie es ist.
Ich habe nun allerdings 50 mal "meinAbsatz" und möchte dynamisch, mittels einer Variablen, über eine Funktion meinAbsatz verändern.
Ich habe folgendes versucht:
function Aendern(i)
{ document.all.i.innerHTML = Neu; }
</script>
</head><body>
<p id="id1">Text1</p>
<p id="id2">Text2</p>
<a href="javascript:Aendern('id1')">Anderer Text1</a>
<a href="javascript:Aendern('id2')">Anderer Text2</a>
Das funktioniert aber nicht, da document.all.i kein Objekt ist.
Vielen Dank für Eure Hilfe.
Ciao Timm
Hallo!
Ich habe folgendes versucht:
function Aendern(i)
{ document.all.i.innerHTML = Neu; }
</script>
</head><body>
<p id="id1">Text1</p>
<p id="id2">Text2</p>
<a href="javascript:Aendern('id1')">Anderer Text1</a>
<a href="javascript:Aendern('id2')">Anderer Text2</a>
Das funktioniert aber nicht, da document.all.i kein Objekt ist.
Meines Wissens kannst du die Variable (i) nicht so einfach da reinschreiben, sondern mußt die Sache mittels eval() angehen:
eval("document.all."+i+".innerHTML = Neu;");
Ich hoffe dir geholfen zu haben :-)
Schöne Grüße
Dominic
Danke Dominik
Dein Tip mit eval() war richtig.
Ich hab dann noch paar andere Fehler gehabt aber der folgende Text läuft.
<head><title>Test</title>
<script language="JavaScript">
function Aendern(i){
var Neu = "neuer <b>fetter</b> Text";
eval("document.all.meinAbsatz"+i+".innerHTML = '" + Neu + "'");
}
</script>
</head><body>
<p id="meinAbsatz1">Text1</p>
<p id="meinAbsatz2">Text2</p>
<a href="javascript:Aendern('1')">Anderer Text1</a><br>
<a href="javascript:Aendern('2')">Anderer Text2</a><br>
</body></html>
Gracias und noch einen schönen Tag
Timm
Hallo Leute
hallo timm,
ich habe eine dringende Frage.
Ich habe folgendes Skript aus SelfHTML.
<html><head><title>Test</title>
<script language="JavaScript">
var Neu = "neuer <b>fetter</b> Text";
function Aendern()
{ document.all.meinAbsatz.innerHTML = Neu; }
</script>
</head><body>
<p id="meinAbsatz">Text</p>
<a href="javascript:Aendern()">Anderer Text</a>
</body></html>
Dieses funktioniert wunderbar so wie es ist.
Ich habe nun allerdings 50 mal "meinAbsatz" und möchte dynamisch, mittels einer Variablen, über eine Funktion meinAbsatz verändern.
Ich habe folgendes versucht:
function Aendern(i)
{ document.all.i.innerHTML = Neu; }
vergiss nicht, die variable in einen string zu konvertieren,
z.bsp. so:
function Aendern(i) {
document.all[""+i].innerHTML = Neu
}
</script>
</head><body>
<p id="id1">Text1</p>
<p id="id2">Text2</p>
<a href="javascript:Aendern('id1')">Anderer Text1</a>
<a href="javascript:Aendern('id2')">Anderer Text2</a>
Das funktioniert aber nicht, da document.all.i kein Objekt ist.
Vielen Dank für Eure Hilfe.
Ciao Timm
bye,
manyak online
Ein Geschäftsmann reißt in einer japanischen Disco eine hübsche Japanerin auf. Später in seinem Hotel, sie sind gerade "voll dabei", schreit sie immer "hai to, hai to". Er denkt sich, na ja, die ist aber gut drauf und lobt mich ganz prima...
Am nächsten Tag, spielt er mit seinem japanischen Geschäftspartner Golf und dem Japaner gelingt ein ausgezeichneter Schlag. Um den Japaner zu beeindrucken, versucht der Geschäftsmann sein frisch erworbenes Japanisch an den Mann zu bringen und sagt: "Hai to!"
Darauf der Japaner: "Was heißt hier falsches Loch?!?"
Seasn !
Ich habe nun allerdings 50 mal "meinAbsatz" und möchte dynamisch, mittels einer Variablen, über eine Funktion meinAbsatz verändern.
Wenn Du alle 50 aufeinmal ändern willst, nimm eine Schleife:
function aendern(max)
{ for(i=1; i<=max; i++)
document.all['id'+i].innerHTML = Neu; }
Ansonsten, wenn's einzeln sein soll:
function Aendern(i)
{ document.all.i.innerHTML = Neu; }
Falsch. Da sucht der Interpreter nach einem Div mit der ID "i". Gibts aber net. Was Du meinst ist
document.all[i].innerHTML = Neu;
Das funktioniert aber nicht, da document.all.i kein Objekt ist.
s.o.
Ciao,
Harry