Hi,
function fooBar() {
var foo = document.getElementById('bar');
foo.setAttribute...
foo...
foo...
}Innerhalb einer Funktion ist das wohl durchaus sinnvoll (Lesbarkeit und Performance).
nein, den Umweg über setAttribute() solltest du dir zugunsten eines direkten Zugriffs auf die jeweiligen Eigenschaften sparen. Statt
foo.setAttribute("id", ...);
also bevorzugt:
foo.id = ... ;
Das ist erstens besser lesbar, zweitens zickt der IE mit setAttribute() gern mal rum, wenn das Attribut auch auf dem direkten Weg gesetzt werden könnte.
Wenn das Element document.getElementById('bar') nun in vielen Funktionen verwendet wird, ist es dann auch sinnvoll dieses Element in eine globale Variable abzuspeichern und dann aus den Funktionen auf diese zuzugreifen?
Ja. Anstatt jedesmal das DOM zu durchsuchen, ist es tatsächlich effizienter, die Referenz auf das gesuchte Objekt einmal zu ermitteln und dann zu speichern. Ob eine globale Variable dafür die beste Strategie ist, sei dahingestellt; man könnte diese Information auch einem nahegelegenen Objekt als zusätzliche Eigenschaft anhängen.
So long,
Martin
Vater Staat bringt uns noch alle unter Mutter Erde.