Rafael: Simples JavaScript

Hallo,
ich habe mich an einem simplen JavaScript probiert, aber ich bekomme es nicht so zum laufen, wie ich mir das vorstelle.

function versteckt(idname)
{

if (document.getElementById(idname).style.display=='block') {
  document.getElementById(idname).style.display = 'none';
        } else {
  document.getElementById(idname).style.display = 'block';
        }
}

Eigentlich, dachte ich, müsste es doch umstellen. Die ID wird innerhalb eines Dokumentes mehrfach gebraucht und per Zufallsfunktion serverseitig verteilt. Nun will ich, dass beim aufrufen einer Funktion die Box aufklappt. Jeweils nachdem, ob die Box "offen" ist oder "geschlossen" ist.

Nun ist es aber so, dass sich eine weitere Box nur dann öffnet, wenn alle anderen bereits geschlossen sind....

Kan mir jemand sagen, warum das so ist?

  1. Hallo!

    Kan mir jemand sagen, warum das so ist?

    Ich bin mir nicht ganz so sicher, ob ich das richtig aus deinem Posting "rausgehört habe :-) Verwendest du mehrere IDs mit dem gleichen Wert in ein und demselben Dokument? Wenn ja: Das ist nicht zulässig. Dann kommt es natürlich zu Fehlern.

    ciao, ww

    --
    sh:(  fo:|  ch:~  rl:(  br:>  n4:~  ie:%  mo:)  va:)  de:]  zu:)  fl:(  ss:|  ls:~  js:)
  2. Lieber Rafael,

    Dein Problem lautet:

    Die ID wird innerhalb eines Dokumentes mehrfach gebraucht

    Wenn Du dieses Problem beseitigst, dann sollte Dein Script wie gewünscht arbeiten.

    Liebe Grüße aus Ellwangen,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
    1. Nein, nein...

      Hab mich unverständlich formuliert.
      Jede ID wird nur ein einziges mal verwendet. Trotzdem klappt es irgendwie nicht...

  3. Hallo Rafael.

    ich habe mich an einem simplen JavaScript probiert, aber ich bekomme es nicht so zum laufen, wie ich mir das vorstelle.

    function versteckt(idname)

    {

    if (document.getElementById(idname).style.display=='block') {

      
    Das ist so nicht möglich. Warum steht [nebenan](https://forum.selfhtml.org/?t=147245&m=955232).  
      
    Noch zwei Anmerkungen:  
      
    
    >         ~~~javascript
    
    if (document.getElementById(idname).style.display=='block') {  
    
    >   document.getElementById(idname).style.display = 'none';  
    >         } else {  
    >   document.getElementById(idname).style.display = 'block';  
    >         }
    
    

    Spare dir Tipparbeit und dem Client den Aufwand, jedes Mal das Objekt erneut holen zu müssen:

    var what = document.getElementById(idname);  
      
    if () {  
      
      what.style.display = 'none';  
    } else {  
      
      // Die zweite Anmerkung, zurücksetzen leicht gemacht:  
      what.style.display = '';  
    }
    

    Einen schönen Dienstag noch.

    Gruß, Mathias

    --
    ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
    debian/rules
    1. Aber wenn ich nun mehrere Objekte in meinem Dokument habe?
      Kann ich das irgendwie über ein array Lösen?

      Ich habe es nun über ein Array probiert:

      status = new Array();

      function versteckt(idname)
      {

      if (angezeigt[idname]==false || angezeigt[idname]=='block') {
       document.getElementById(idname).style.display = 'none';
       angezeigt[idname] = 'none';
       } else {
       document.getElementById(idname).style.display = 'block';
       angezeigt = 'block';
       }

      }

      Klappt aber nicht...

      1. Moin

        status = new Array();

        taucht nie wieder auf

        if (angezeigt[idname]==false || angezeigt[idname]=='block') {

        was ist angezeigt ?

        Klappt aber nicht...

        Super Fehlerbeschreibung!
        Was gibt denn die Fehlerkonsole beim Firefox aus?

        Gruß
        rfb

        --
        Man kann einen Menschen nichts lehren, man kann ihm nur helfen, es selbst zu entdecken.
        (Galileo Galilei)
        1. status = new Array();
          taucht nie wieder auf

          Okay, das war auch schon der Fehler ;)
          Danke für die Hilfe.