miniA4kuser
Lounge-Member
Schön das gemerkt wurde das das über eine Klasse sinnfoller zu handhaben ist. Ich finde es immer wieder erschreckend wie viele Leute nicht den Unterschied zwischen Klasse und ID wissen...
PS: Bei einem Verweis auf jQuery hätte ich noch sinnvoll empfunden, das auch hingewiesen wird, dass dann alle inline-Styleangaben in das CSS gepackt werden sollen, da man eh schon ne Klasse benutzt. Und dann einfach jQuery.toggle() benutzen. Oder eine zweite Klasse anlegen, welche das Element sichtbar macht und die Klassen mittels jQuery.toggleClass() austauschen.
Wie meinst du das? Hatte bis jetzt noch keine Probleme damit. Oder meinst du die fehlende Browserunterstützung bei IE kleiner Version 8, was sich mit folgendem Code beheben lässt?Besser als ByClassName wäre es aber jquery zu benutzen, da ByClassName im IE nicht 100% funktioniert.
Code:
(function() {
if (!document.getElementsByClassName) {
var indexOf = [].indexOf || function(prop) {
for (var i = 0; i < this.length; i++) {
if (this[i] === prop) return i;
}
return -1;
};
getElementsByClassName = function(className,context) {
var elems = document.querySelectorAll ? context.querySelectorAll("." + className) : (function() {
var all = context.getElementsByTagName("*"),
elements = [],
i = 0;
for (; i < all.length; i++) {
if (all[i].className && (" " + all[i].className + " ").indexOf(" " + className + " ") > -1 && indexOf.call(elements,all[i]) === -1) elements.push(all[i]);
}
return elements;
})();
return elems;
};
document.getElementsByClassName = function(className) {
return getElementsByClassName(className,document);
};
Element.prototype.getElementsByClassName = function(className) {
return getElementsByClassName(className,this);
};
}
})();
PS: Bei einem Verweis auf jQuery hätte ich noch sinnvoll empfunden, das auch hingewiesen wird, dass dann alle inline-Styleangaben in das CSS gepackt werden sollen, da man eh schon ne Klasse benutzt. Und dann einfach jQuery.toggle() benutzen. Oder eine zweite Klasse anlegen, welche das Element sichtbar macht und die Klassen mittels jQuery.toggleClass() austauschen.