Lorenz Hopfmüller: Elemente nach Namen ansprechen

Hi und schönen Samstag zusammen,

ich habe hier zwei Funktionen:

function mouseIn(feld) {
 switch(feld) {
  case 1:
  document.all.item1.style.width = "22%";
  document.all.item1.style.height = "35px";
  document.all.item1.style.top = "2px";
  document.all.item1.style.backgroundImage = "url(puzzlegen.php?farbe1=255-0-0&farbe2=255-0-0&hoehe=35&breite=20&boppel=rechts&boppelradius=13)";
  document.all.item2.style.width = "18%";
  break;
  case 2:
  document.all.item2.style.width = "22%";
  document.all.item2.style.height = "35px";
  document.all.item2.style.backgroundImage = "url(puzzlegen.php?farbe1=255-0-0&farbe2=255-0-0&hoehe=35&breite=20&boppel=rechts&boppelradius=13)";
  document.all.item2.style.top = "2px";
  document.all.item1.style.width = "19%";
  document.all.item3.style.width = "19%";
  break;
  case 3:
 /*...  */
  break;
 }
}
function mouseOut(feld) {
 switch(feld) {
  case 1:
  document.all.item1.style.width = "19.5%";
  document.all.item1.style.height = "22px";
  document.all.item1.style.backgroundImage = "url(puzzlegen.php?farbe1=255-0-0&farbe2=255-0-0&hoehe=22&breite=20&boppel=rechts&boppelradius=10)";
  document.all.item1.style.top = "9px";
  document.all.item2.style.width = "19.5%";
  break;
  case 2:
  document.all.item4.style.width = "19.5%";
/* ... */
  break;

}
}

Das ist eine reichlich unelegante Lösung, die Elemente anzusprechen, oder?

Ginge das auch irgendwie in dem Stil?:

document.all.{item + feld}.style.height = "123px";

Ich habe gesucht, aber nicht gefunden... Könntet ihr mir da weiterhelfen?

Danke schonmal,
Lorenz Hopfmüller

  1. Hallo Lorenz Hopfmüller,

    schau dir mal http://de.selfhtml.org/javascript/objekte/document.htm#get_elements_by_name an.
    Namen sind Strings, die du auch so erzeugen kannst:

    Nr=42;
    Prefix="item";
    Name=Prefix+Nr;

    Gruß, Jürgen

    1. Danke, das wars

      Lorenz Hopfmüller