Andi: stye.display - Problem im IE7

Hallo,

folgendes Problem:
Ich versuche eine Option mit dem Befehl temporär auszublenden:
document.getElementById('test').options[0].style.display = 'none';

Im FF und Opera habe ich damit keine Probleme. IE7 schert sich aber nicht darum. Wenn ich das options weg lasse dann wird richtigerweise die Selectbox ausgebelendet auch im IE.

Jemand eine Idee was hier im Busch sein könnte?
Grüß
Andi

  1. Hi Andi!

    Interessant, dass es bei den anderen Browsern (FF&Co.) funktioniert...

    document.getElementById('test')

    liefert ein Node (http://de.selfhtml.org/javascript/objekte/node.htm Objekt zurück.
    Dieses kennt generell keine .options[...] Eigenschaft.
    Die Lösung sollte in (...).getElementsByTagName("option")[0] liegen, was den option Knoten [index 0] liefert, der seine Erscheinung mittels style anpassen lassen sollte.

    Viele Grüsse,
    Richard

    1. Hallo Richard,

      gibt es noch andere Funktionen, welchen den option-Knoten liefern? Ich kann leider nicht alle options durchparsen um den richtigen zufinden.
      Weiters verstehe ich nicht warum getElementById und getElementsByTagName anders reagieren sollte:

      "Um auf die Eigenschaften und Methoden des node-Objekts zugreifen zu können, benötigen Sie einen Knoten. Um auf vorhandene Knoten im Dokument zuzugreifen, werden die Methoden des  document-Objekts  getElementById,  getElementsByName und  getElementsByTagName verwendet. Ausgehend davon können Sie die Attributknoten, Textknoten und weitere Element-Kindknoten eines Elements ansprechen" - aus Selfhtml

      Danke und Grüße
      Andi

      1. Hi Andi!

        Ich denke, du hast mich nicht ganz gekriegt - (ich hab's aber auch blöd geschrieben):
        Anstelle von:
        document.getElementById('test').options[0].style...
        verwendest du besser:
        document.getElementById('test').getElementsByTagName("option")[0].style

        Damit sollte sich auch die Frage geklärt haben, oder?

        Grüsse,
        Richard

        1. Hallo Richard,

          document.getElementById('test').options[0].style...
          verwendest du besser:
          document.getElementById('test').getElementsByTagName("option")[0].style

          Damit sollte sich auch die Frage geklärt haben, oder?

          Funktioniert nur im FF; Opera und IE7 weigern sich beharrlich.

          Grüße
          Andi

  2. Hi,

    Ich versuche eine Option mit dem Befehl temporär auszublenden:

    Kann es sein, dass der IE7 display='none' für options einfach nicht akzeptiert?
    Wenn ich mich nicht täusche habe ich dazu auch hier im Forum mal einen Beitrag gelesen, aber ich finde ihn jetzt auf die Schnelle nicht.

    Lass dir das mal im IE7 anzeigen:

      
     <select>  
       <option id="opt1" value="1">eins</option>  
       <option id="opt2" value="2">zwei</option>  
       <option id="opt3" style="display: none;" value="3">drei</option>  
       <option id="opt4" value="4">vier</option>  
       <option id="opt5" value="5">fuenf</option>  
     </select>  
    
    

    Bei mir ignoriert der IE7 das "display: none" einfach.
    Eine alternative für dich wäre vielleicht removeChild().

    mfG,
    steckl

    1. Hallo,

      Kann es sein, dass der IE7 display='none' für options einfach nicht akzeptiert?

      Ja das wird es sein anders kann ich mir es nicht erklären.

      Eine alternative für dich wäre vielleicht removeChild().

      Welches ich auch jetzt verwenden werde.

      Grüße und Dank
      Andi