Schleife

Hallo,

ich habe keine Erfahrung mit javaScript deswegen frage ich euch wie kann ich die if und else if durch einen for ersetzen.

wie kann ich id1, id2 durch einen Varialble ersetzen

schon wenn ich so was habe

function myman(x){
for(var i=1;i

Untitled Document

function startposition(){

document.all.id1.style.display = „none“;
document.all.id2.style.display = „none“;
document.all.id3.style.display = „none“;
}
function myman(x){
if( x == „1“ ){
document.all.id1.style.display = „“;
document.all.id2.style.display = „none“;
document.all.id3.style.display = „none“;
}
else if ( x == „2“){
document.all.id1.style.display = „none“;
document.all.id2.style.display = „“;
document.all.id3.style.display = „none“;
}
else if ( x == „3“){
document.all.id1.style.display = „none“;
document.all.id2.style.display = „none“;
document.all.id3.style.display = „“;
}
}

  • hallo1

  • hallo2

  • hallo3

Schon garnicht mal schlecht!

\<!--

var maxId = 3;
var strId = "id";

function startposition()
{
 var theElem = null;

 for (var i=0; i\<=maxId; ++i) {
 theElem = window.document.all[strId+i];
 if (theElem && typeof(theElem)=="object") {
 theElem.style.display = "none";
 }
 }

/\*
 document.all.id1.style.display = "none";
 document.all.id2.style.display = "none";
 document.all.id3.style.display = "none";
\*/
}

function myman(x)
{
 x = isNaN(x) ? 0 : parseInt(x);

 var theElem = null;

 for (var i=0; i\<=maxId; ++i) {
 theElem = window.document.all[strId+i];
 if (theElem && typeof(theElem)=="object") {
 theElem.style.display = (i==x) ? "" : "none";
 }
 }
/\*
 if( x == "1" ) {
 document.all.id1.style.display = "";
 document.all.id2.style.display = "none";
 document.all.id3.style.display = "none";

 } else if ( x == "2") {
 document.all.id1.style.display = "none";
 document.all.id2.style.display = "";
 document.all.id3.style.display = "none"; 

 } else if ( x == "3") {
 document.all.id1.style.display = "none";
 document.all.id2.style.display = "none"; 
 document.all.id3.style.display = ""; 
 }
\*/
}

//--\>

Hallo,

danke das ist eine sehr schoene Schleife aber bei mir funktioniert leider nicht beim Laden der Seite werden die unteren Links angezeit und reagiert nicht auf Onclick().
ich finde schon alles logisch aber leider. hast du eine idee?

ich habe mit alert(„hallo“) geprueft ob die Schleife durchgeführt wird oder nicht aber es scheint nicht
z.b
function myman(x){
alert(„mymanKopf“);
x = isNaN(x) ? 0 : parseInt(x);
var theElem = null;
for (var i=0; i

Hallo,

also es funktioniert bei mir ausgezeichnet, wie ich auch nicht anders erwartet habe. Meist liegt es an kleinen Fehlern und man muss schon sehr genau hinschauen.

Hast Du folgendes initialisiert?

var maxId = 3;
var strId = „id“;

Haben Deine Elemente auch den ID praefix „id“ und dann eine Nummer?

Pruefe Deine geschweiften Klammern { }. Zu jeder geoeffnete gehoert eine geschlossenen. Das habe ich bei deinen letzten Angaben nicht gesehen!

Mehr kann ich Dir auch nicht helfen.

Ciao

hi,

dieses Probleme ist schon geloest. ich arbeit mit Editor Forte for Java und mit dem muss man ab und zu den Tomcat herunterfahren sonst werden aenderungen nicht aktualisiert.
ich moechte wieder das gleiche mit Applet machen. und Applet laufen auf dem Client. kannst du mir sagen vielleicht was für einen Nachteil hat.
zoo

Hallo,

keine Nachteile, Meiner Meinung nach wenigstens. Ist auch eher Geschmackssache denke ich mal. Der Nachteil Deiner jetzigen Loesung liegt eher daran, dass es nur im IE laeuft.

Ciao

Hallo,

Aha, kannst du mir sagen warum?
danke
zoo

Hallo nochmal,

wie ich schon ganz zu Anfang sagte, ist das nur eine Sache fuer allerneueste Browser.

So kennt der Opera6 nach meinem Wissensstand die „display“ Property noch nicht, vielleicht aber bald in der Version 7. Wenn er dies dann beherrscht, dann wird die Syntax hoechstwahrscheinlich so lauten:

window.document.getElementById(„id1“).style.display= „none“;

Der Netscape4 kennt „display“ nur in sehr eingeschraenkter Form, aber wohl nicht so, wie Du es brauchst. Auch wird es niemals in der Version 4 nachimplementiert werden. Selbst wenn er es koennte, dann wuerde die Syntax wie folgt lauten:

window.document.layers[„id1“].display = „none“;

Und dies kann er dann nur auf absolut positionierten Elementen machen.
Fuer beide Browser koennte man via open(); write(); close(); einen Workaround basteln. Aber schwierig, wenn nachfolgende Elemente auftauchen…

MSIE4 kenn nur:

window.document.all.id1.style.display = „none“;

oder

window.document.all[„id1“].style.display = „none“;

MSIE5+ kennt „all“ in obiger Form auch, es ist aber besser sich an folgendes zu halten:

window.document.getElementById(„id1“).style.display= „none“;

Letzteres kennt auch der Netscape6+ sowie Mozilla 1+, alles andere aber nicht. Netscape6 und Mozilla unterstuetzten weder „all“ noch „layers“ NICHT!

CIAO

hi,

danke

zoo