stye.display - Problem im IE7
Andi
- javascript
0 ritschmanhard1 steckl0 Andi
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
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
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
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
Hallo Richard,
document.getElementById('test').options[0].style...
verwendest du besser:
document.getElementById('test').getElementsByTagName("option")[0].styleDamit sollte sich auch die Frage geklärt haben, oder?
Funktioniert nur im FF; Opera und IE7 weigern sich beharrlich.
Grüße
Andi
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
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