ERLEDIGT
JA
JA
ANTWORTEN
9
9
ZUGRIFFE
457
457
EMPFEHLEN
-
Hallo,
ich habe grade folgendes Problem.
Ich würde gerne dem a href im ersten li der ul#navi_images eine Klasse verpassen.
Mit dem a schien es nicht zu klappen, daher habe ich nun erstmal versucht nur der li die Klasse zu geben und zwar so:
Code :1 2
var first_img = window.document.getElementById('navi_images').firstchild; first_img.className = "active";
Irgendwie scheint er mit der ersten Zuweisung der Variable auch kein Problem zu haben, aber dann mit der zweiten Zeile. Da bekomme ich immer ein:
"first_img has no properties"
Aber müßte es nicht vom Prinzip her so funktionieren?
Irgendwie verstehe ich es nicht.
Wäre nett wen mir jemand auf die sprünge helfen könnte.
Danke, Hannes
-
Du musst auf die korrekte „camel case“-Schreibweise achten:
Code :1
var first_img = window.document.getElementById('navi_images').firstChild;Markus Wulftange
-
Arg!
Ja, stimmt, danke, jetzt meckert er nicht mehr.
Aber irgendwie scheint es nicht zu klappen mit firstChild das erste li anzusprechen.
Das funktioniert (ul#bla):
Code :1 2
mein = window.document.getElementById('bla'); mein.className = 'active';
Aber sobald ich quasi die erste li in der ul#bla anspreche passiert nichts mehr, auch wenn es eine CSS Klassegibt.Code :1
ul#bla li.active {color: red;}
Also hierbei passiert nichts, aber es gibt auch keinen Fehler:
Code :1 2
mein = window.document.getElementById('bla').firstChild; mein.className = 'active';
Eigentlich will ich ja auch das a im li ansprechen, aber wenn ich es so mache...
...hat er wieder keine Properties, obwohl es ein a in dem li gibt.Code :1 2
mein = window.document.getElementById('bla').firstChild; mein.a.className = 'active';
Hiermit hab ich rumprobiert:
HTML-Code:<ul id="bla"> <li><a href="#">eins</a></li> <li><a href="#">zwei</a></li> <li><a href="#">drei</a></li> <li><a href="#">vier</a></li> </ul>
Vielleicht ist es auch die falsche Herangehensweise?
Hast Du noch ein Tipp?
-
29.10.06 19:17 #4
hast schon mal
probiert?Code javascript:1
mein.firstChild.className = 'active';
-
Gute Idee, aber leider regt sich da auch nichts. Kein Fehler, aber auch kein Ergebnis.
Mitdann wieder keine Properties.Code :1
mein.firstChild.a.className = 'active';
Irgendwie will das nicht.
-
Das erste Kindelement ist in diesem Fall nur ein Textelement, nämlich der Text zwischen dem Start-Tag des ul-Elements und dem Start-Tag des ersten li-Elements.
Markus Wulftange
-
Wie recht Du hast. Herje, ich hasse javascript, aber wenn man auch mal den DOM Inspector benutzt, dann ist es auch gleich alles ein bisschen einfacher

Damit klappt es:
Allerdings frage ich mich, warum das nicht klappt:Code :1 2
mein = window.document.getElementById('bla').childNodes[1].firstChild; mein.className = 'active';
Code :1 2
mein = window.document.getElementById('bla').childNodes[1].a; mein.className = 'active';
Ist das nicht beides das selbe? Auch mit einem großen "A" geht es nicht. Ich hab zwar jetzt, was ich will, aber interssieren würde es mich trotzdem.
Danke für den Denkanstoß, Hannes
p.s.
Nun ist mir grade aufgefallen das der IE es nur richtig macht, wenn ich childNodes[0] nehme. Der zählt da anders. Der hat kein Textelement dazwischen. Hast du das evtl. auch einen Anstoß?Geändert von hanzen (30.10.06 um 22:34 Uhr)
-
Habe es jetzt so gemacht, aber irgendwie ist das ganz schön häßlich, oder?

Aber javascript ist ja immer irgendwie häßlich. Oder liegt es gar an mir? Ne, oder?Code :1 2 3 4 5 6 7 8
navRoot = document.getElementById('bla'); for (i=0; i<=1; i++) { node = navRoot.childNodes[i]; if (node.nodeName=="LI") { node.firstChild.className="active"; break; } }
-
-
Ähnliche Themen
-
Frage: kann ich mit einem String eine Klasse "definieren"?
Von Martin951995 im Forum JavaAntworten: 2Letzter Beitrag: 17.01.11, 21:53 -
Mit einer Klasse Objekte für eine andere Klasse erstellen.
Von New2Java im Forum Java GrundlagenAntworten: 14Letzter Beitrag: 21.11.10, 12:37 -
JGraph, Knoten eine min Größe vergeben
Von osito150 im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 0Letzter Beitrag: 15.05.09, 16:51 -
Rechte für eine Tabelle vergeben
Von Darian im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 14.04.09, 20:21 -
Wie erzeuge ich aus einem Dateinamen-String eine Klasse ?
Von MariusMeuser im Forum JavaAntworten: 14Letzter Beitrag: 23.01.05, 17:47





Zitieren



Login





