[GastForen Programmierung/Entwicklung JavaScript IE: Wie style im option-Element-Objekt ansprechen?

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

IE: Wie style im option-Element-Objekt ansprechen?

jmst
Beiträge gesamt: 15

10. Feb 2009, 20:54
Beitrag # 1 von 4
Bewertung:
(3502 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich habe ein Pulldown-Menü in einem HTML-Formular, bei dem ich je nach Wert einer Variablen die textDecoration (oder die Textfarbe) verändern will (if-Bedingung) - z.B.:

document.forms[0].elements[0].options[5].style.textDecoration = "line-through";
(oder ...style.color = "#ff0000";)

Das funktioniert nicht im IE! ich habe irgendwo gelesen, dass, obwohl DOM-konform, der IE die style-Eigenschaft/das Unterobjekt? des option-Elements nicht ansprechen lässt.

Gibt es da irgendeinen Trick? Workaround?

Dem option-Element einen "name" zu geben ist schon mal nicht HTML-konform, mittels id="yxz" bekomme ich eine Fehlermeldung:
document.getElementByID.xyz ist kein Objekt (IE) bzw.
document.getElementByID.xyz has no properties (NS)

Danke!
Jürgen
X

IE: Wie style im option-Element-Objekt ansprechen?

ganesh
Beiträge gesamt: 1981

11. Feb 2009, 00:23
Beitrag # 2 von 4
Beitrag ID: #385013
Bewertung:
(3485 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
nun ja, die Syntax lautet nicht

document.getElementByID.xyz

sondern

document.getElementById("xyz")

Versuch's mal so oder ähnlich:

Code
<form name="f" id="f" method="POST"> 

<select id="kat" name="kat">
<option value="" selected="selected">Wählen Sie eine Kategorie:</option>
<option value="">---------------------------------</option>
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
</select>

<br /><br />

<input type="submit" id="submit" name="submit" value="Senden" />

</form>


<script type="text/javascript">

document.getElementById("kat").onchange=function() {

var chosenoption = this.options[this.selectedIndex];
resetOptions();

if (chosenoption.value != "") {
chosenoption.style.backgroundColor="#660000";
chosenoption.style.color="#ffffff";
}

}



function resetOptions() {
var items = document.getElementById("kat").options.length;
for(k=0; k<items; k++) {
document.getElementById("kat").options[k].style.backgroundColor="#ffffff";
document.getElementById("kat").options[k].style.color="#000000";
}
}

</script>



als Antwort auf: [#384982]
(Dieser Beitrag wurde von ganesh am 11. Feb 2009, 00:24 geändert)

IE: Wie style im option-Element-Objekt ansprechen?

jmst
Beiträge gesamt: 15

11. Feb 2009, 01:50
Beitrag # 3 von 4
Beitrag ID: #385018
Bewertung:
(3467 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Sorry Ganesh,

document.getElementById.xyz
(mit kleinem "d" bei Id) ist die exakte Schreibweise in der Fehlermeldung, nicht aber meine Syntax gewesen.
Meine Syntax war trotzdem falsch, anstelle der richtigen von dir verwendeten runden Klammern habe ich eckige verwendet:

document.getElementById.["xyz"].style. ...

Mit der richtigen Schreibweise
document.getElementById("xyz").style. ...
gibts jetzt keine Fehlermeldung mehr (weder IE noch NS), aber funktionieren tuts immer noch nicht im IE.

Dein Code hilft leider auch nicht, der Effekt ist im NS zu sehen, im IE definitiv nicht. Habe ihn 1:1 kopiert und verwendet.

Ich befürchte, dass man da einfach nicht drankommt
Jedenfalls danke für deinen Versuch!
Gruß
Jürgen


als Antwort auf: [#385013]

IE: Wie style im option-Element-Objekt ansprechen?

ganesh
Beiträge gesamt: 1981

11. Feb 2009, 18:38
Beitrag # 4 von 4
Beitrag ID: #385210
Bewertung:
(3446 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Welche IE Version denn? Und meinst du wirklich allen Ernstes mit NS = Netscape? Das braucht doch nun wirklich niemand mehr. Meinst du Firefox?

Mein Bsp. funktioniert in IE7, FF3, Chrome + Safari (WinXP). Aber vielleicht hab ich dich auch missverstanden...


als Antwort auf: [#385018]
X