Problem mit JavaScript

Kopfballstar

Erfahrenes Mitglied
Ich habe ein Problem. Das JavaScript liefert kein Ergebnis.

function showIn(IdDesElementes,id){

document.getElementById(profil).style.display = 'none';
document.getElementById('1').style.backgroundColor = '#FF9333';

document.getElementById(IdDesElementes).style.display = 'inline';
var temp = document.getElementById(IdDesElementes).style.backgroundColor;
alert(temp);
}

Var Temp bleibt leider leer.

Der HTML Code der das ganze einbindet:

<div id="nav_top">
<a href="#" OnMouseOver="javascript:showIn('profil','1')" id="1">Profil</a>
</div>

<div id="profil">
<a href="#" >Konzept</a> <br>
</div>

Die Style Angaben stehen alle in einer CSS Datei
 
Bei getElementById() muss die ID des Elementes in Quotes gesetzt werden(wie es bei 1 der Fall ist)...es sei denn, du verweist dort auf eine Variable.
Das hattest du wahrscheinlich auch vor...tust du aber nicht, denn die Variable heisst IdDesElementes und nicht profil .
In der 3. Zeile der Funktion hast du es richtig, nur wird da nichts ausgegeben, da wegen des Fehlers in Zeile1 nichts zugewiesen wird.


Weiterhin: 1 ist keine gültige ID... eine ID muss immer mit einem Buchstaben A-Z beginnen.

Ab und zu hilft auch ein Blick in die JS-Konsole, die hätte dir bestimmt einen Fehler a'la undefiniertes Objekt document.getElementById(profil) gemeldet.
 
Nein, das mit Profil ist in Ordnung weil es eine vorher definierte Variable ist. Ich hab das Script verkürzt hier reingestellt. Wenn ich 1 übergebe klappt das auch problemlos (werde es aber vorsichtshalber ändern).
Das Problem liegt vielmehr hier:
var temp = document.getElementById(IdDesElementes).style.backgroundColor;

temp bleibt leer. IdDesElementes wird der Funktion übergeben - hier:
<a href="#" OnMouseOver="javascript:showIn('profil','1')" id="1">Profil</a>

und folgende Ebene soll damit angesprochen werden:
<div id="profil"> <a href="#" >Konzept</a> <br>
</div>
 
Ahso... jetzt sehe ich, was du meinst.

JS kann nur style-Angaben ermitteln, diemit JS gesetzt wurden, oder direkt im Element notiert sind... Workaround: wenn du die styles nicht direkt im Element notieren kannst/willst: Keiner :(
 
Aber warum? Das hier:
document.getElementById(IdDesElementes).style.display = 'inline';
funktioniert doch auch. Und das wurde auch in der CSS delariert. und wenn ich:
document.getElementById(id).style.backgroundColor = #123456;
funktioniert das auch.

// edit
Ok habs jetzt so gemacht das ich über js erst einen css wert vergebe und dann wieder auslese. klappt wunderbar
 

Neue Beiträge

Zurück