Hallo,
Ich hab das mit dem "getElementByClassName" (doch ohne "s", oder?) ausprobiert:
function akt() {
document.getElementByClassName("aktwp").this.className = 'linkiak';
}
Wie schon angedeutet, gibt es normalerweise kein Objekt namens „getElementsByClassName“ du müsstest es dir also erstmal selber "bauen". Hier mal meine Funktionen:
Zuerst die ultimative (*g*) „getElementsBy“-Funktion:
function getElementsBy(Attribut,Wert,Spacer){
var result = new Array();
var AllEl = document.getElementsByTagName("*");
for (var i = 0; i < AllEl.length;i++) {
if (AllEl[i][Attribut] && ((Spacer && AllEl[i][Attribut].match(RegExp(Spacer+Wert+Spacer))) || (AllEl[i][Attribut] == Wert)))
result.push(AllEl[i]);
}
return result;
}
Damit kannst du alle Elemente mit einer bestimmten Eigenschaft abfragen. Also auch „className“. Wenn du jetzt noch eine einfachere Funktion willst, wo du nur die Klasse als Parameter angeben musst, kannst du folgendes hinzufügen:
function getElementsByClassName(Klasse){
return getElementsBy("className",Klasse,"\\b");
}
Wenn du diese Funktion dann auch noch als Unterobjekt von „document“ haben willst, brauchst du noch diese Zeile:
document.getElementsByClassName = getElementsByClassName;
Beachte bei all diesen Funktionen, dass diese kein Element, sondern ein Array aus Elemente zurückliefern. Du musst also z.B. „[0]“ dahinterschreiben, um auf das 1. Element zuzugreifen.
function akt() {
document.getElementById("aktwp").this.className = 'linkiak';
}
Wenn „aktwp“ die Klasse ist, kannst du aber nicht mit „getElementById“ darauf zugreifen.
„this“ ist hier außerdem überflüssig!
window.onload = akt();
Hiermit weist du dem onload-Event den Rückgabewert der Funktion „akt“ zu. Willst du die Funktion aber erst „onload“ ausführen, musst du sie anders schreiben.
Also entweder
window.onload = akt
oder
window.onload = function(){akt()}
Bekomme aber immer die Fehlermeldung: Bezeichner erwartet.
Weil du mit „this“ auf ein nicht vorhandenes Objekt verweist - da es „getElementsByClassName“ wie gesagt nicht defaultmäßig gibt.
mfg. Daniel