bert: JS / CSS Problem mit IE

Guten Morgen,

ich hab ein kleines JS, welches beim onkeydown-event die class eines Divs ändern soll. Funktioniert unter FF auch wunderbar. Bei IE passiert allerdings gar nichts.

Habe das JS "aus-alertet" um zu sehen, ob er auch in jede if-Anweisung reingeht und ob die variablen richtig gesetzt sind. scheint wohl so zu sein.

Entweder IE ist also nicht mit folgender JS-Zeile einverstanden:
document.getElementById('mein_div_' + divnr).setAttribute("class","divs_neue_class");
(divnr ist richtig gesetzt und das Div mit der passenden ID existiert auch)

oder er kann den CSS-part nicht interpretieren:

.divs_neue_class {  
	background-color: #ff0;  
	color: #00f;  
	padding: 2px 2px 2px 0px;  
	text-transform: uppercase;  
	font-weight: bold;  
}

Es passiert jedenfalls nichts beim onkeydown (obwohl wie gesagt alle IFs positiv durchlaufen werden und alle vars richtig sind) im IE (Version 8)

Danke schonmal für eure Ideen

  1. @@bert:

    nuqneH

    Entweder IE ist also nicht mit folgender JS-Zeile einverstanden:
    document.getElementById('mein_div_' + divnr).setAttribute("class","divs_neue_class");

    Dass der IE so seine Probleme mit setAttribute() hat, sollte sich doch inzwischen herumgesprochen haben.

    Setze die Klasse als Eigenschaft des Objekts:

    document.getElementById('mein_div_' + divnr).className = "divs_neue_class";

    Qapla'

    --
    Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
    1. Setze die Klasse als Eigenschaft des Objekts:

      document.getElementById('mein_div_' + divnr).className = "divs_neue_class";

      Gut zu wissen. Habs geändert:

      if (document.getElementById('SUG_suggest_element_' + (SUG_selected_suggest + 1))) {  
      	if (SUG_selected_suggest!=-1)  
      		document.getElementById('SUG_suggest_element_' + SUG_selected_suggest).classname = "SUG_suggest_element";  
      	SUG_selected_suggest++;  
      	document.getElementById('SUG_suggest_element_' + SUG_selected_suggest).classname = "SUG_selected_suggest";
      

      So funktionierts weder in FF noch in IE.
      Wenn denselben Code allerdings mit
      document.getElementById('SUG_suggest_element_' + SUG_selected_suggest).setAttribute("class", "SUG_selected_suggest");
      schreibe gehts in FF

      Das erste IF prüft, ob das folge-Element existiert. Das zweite schaut, ob bereits ein selected_div existiert um es zu unselecten.
      SUG_selected_suggest ist eine globale Variable um zu speichern, welches div gerade selected ist.

      1. Hallo,

        Setze die Klasse als Eigenschaft des Objekts:

        document.getElementById('mein_div_' + divnr).className = "divs_neue_class";

        Gut zu wissen.

        ja, hätte man aber mit einer Suche in alten Forumsbeiträgen schon vielfach finden können.

          document.getElementById('SUG\_suggest\_element\_' + SUG\_selected\_suggest).classname = "SUG\_suggest\_element";  
        

        So funktionierts weder in FF noch in IE.

        Natürlich nicht. Du setzt ja auch eine ganz andere, neue Eigenschaft.

        So long,
         Martin

        --
        Er war ein Mann wie ein Baum. Sie nannten ihn Bonsai.
      2. lol, Fehler gefunden --> classname => className

        Danke dir!