Fritz: Code verschlanken

Hallo,

versuche gerade, meinen Code zu verschlanken.
Dabei stosse ich mich an folgendem:

function cl() {
document.getElementById("a").style.display = "none";
document.getElementById("b").style.display = "none";
document.getElementById("c").style.display = "none";
usw...
}

das müßte doch auch eleganter zu schreiben sein, als im hauruck-Stil. Komm aber nicht dahinter, wie. Hab wohl irgendwie Tomaten auf den Augen. Wär nett, wenn mir jemand einen Tipp geben könnte.

Gruß Fritz

  1. Hi,

    Du könntest die Elemnetnamen in einer Array speichern und dann mit einer FOR-Schleife durchlaufen. In Selfhtml kannst du über die Anwedung von FOR-Schleifen auf Arrays näheres nachlesen. Du kommst auch ohne Array klar, wenn die Elmente z.B. a1, a2, a3 usw. heissen.

    for(i=1;i!=4;i++) document.getElementById('a'+i).style.display='none';

    Grüße aus Düsseldorf,

    Aleksej

    1. Danke. Das hab ich gesucht.
      Gruß Fritz

    2. Hi,

      Hi Aleksej

      for(i=1;i!=4;i++) document.getElementById('a'+i).style.display='none';

      In solchen Fällen würde ich immer i<=4 schreiben. Hier spielt es keine Rolle, aber es gibt immer wieder Fälle, in denen man die Laufvariable in Abhängigkeit von Bedingungen verändern muß. Dann kann es auch leicht passieren, daß sie aus dem Index-Bereich kommt. Wenn dann aus Gewohnheit != verwendet wurde, kommt es möglicherweise zu komischen Effekten, bzw in C++ gerne zu segmentation faults.

      Grüße aus Düsseldorf,

      Aleksej

      Grüße nach Düsseldorf

      Andreas Schigold

  2. Hallo,

    versuche gerade, meinen Code zu verschlanken.
    Dabei stosse ich mich an folgendem:

    function cl() {
    document.getElementById("a").style.display = "none";
    document.getElementById("b").style.display = "none";
    document.getElementById("c").style.display = "none";
    usw...
    }

    das müßte doch auch eleganter zu schreiben sein, als im hauruck-Stil. Komm aber nicht dahinter, wie. Hab wohl irgendwie Tomaten auf den Augen. Wär nett, wenn mir jemand einen Tipp geben könnte.

    Prinzipiell würde ich auch über Funktionen nachdenken:

    function cl() {
     display('a');
     display('b');
     display('c');
    }

    function display(id, how)
    {
       var obj = document.getElementById(id);
       if(!obj) return false;
       if(!how) how = 'none';
       obj.style.display = how;
       return true;
    }

    keinerlei Überprüfungen vornehmen, ist eine unsaubere Sache, die dich immer wieder in Bedrängniss bringen wird.

    Struppi.