![]() |
SELFHTML Forumsarchiv |
|
|
Die folgende Nachricht zum Thema stammt von: Andi, 29. 02. 2008, 15:02
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
Die folgende Nachricht zum Thema stammt von: ritschmanhard, 29. 02. 2008, 15:24
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
Die folgende Nachricht zum Thema stammt von: Andi, 29. 02. 2008, 15:38
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
Die folgende Nachricht zum Thema stammt von: ritschmanhard, 29. 02. 2008, 15:45
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
Die folgende Nachricht zum Thema stammt von: Andi, 29. 02. 2008, 15:49
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
Die folgende Nachricht zum Thema stammt von: steckl, 29. 02. 2008, 16:02
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
Die folgende Nachricht zum Thema stammt von: Andi, 29. 02. 2008, 16:06
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
© 1998-2006
Impressum, Software: Classic Forum