langen Script kürzen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • langen Script kürzen

    Ich hatte in einem anderen Thema ja bereits mein Script gepostet was nicht funktionierte. Jetzt funktioniert es aber ich muss es irgendwie kürzen. Da ich das alte Thema schon als erledigt markiert habe, eröffne ich diese neue Thema. Hoffe das ist ok so.

    Hier das Script um mdas es geht:

    Quellcode

    1. if (document.eingabe.kon1.value == "Beschreibung") {
    2. document.eingabe.kon1.style.color = "#999";
    3. } else if (document.eingabe.kon1.value == "") {
    4. document.eingabe.kon1.value = "Beschreibung";
    5. document.eingabe.kon1.style.color = "#999";
    6. }


    Dieses Script habe ich jetzt etwa 50x untereinader stehen, es ändert sich jedesmal nur die Zahl. Aus kon1 wird kon2, dann kon3 usw. Das geht hoch bis ca. 50 und ein Ende ist nicht abzusehen.
    Kann man das nicht irgendwie mit einer for Schleife machen?

    Hatte sowas probiert:

    Quellcode

    1. for (var i=1; i<50; i++) {
    2. if (document.eingabe.kon+i.value == "Beschreibung") {
    3. document.eingabe.kon+i.style.color = "#999";
    4. } else if (document.eingabe.kon+i.value == "") {
    5. document.eingabe.kon+i.value = "Beschreibung";
    6. document.eingabe.kon+i.style.color = "#999";
    7. }
    8. }


    Klappt natürlich nicht. Ich weiß nicht wie ich die Variable i dazuschreiben soll.
  • Moin!

    Du kannst mit String concatenation nicht auf Objekteigenschaften zugreifen. Dein Vorteil ist aber, dass es bei sowas in JS egal ist, ob du es als Array oder als Objekt ansprichst.

    Quellcode

    1. for (var i=1; i<50; i++) {
    2. if (document.eingabe['kon'+i].value == "Beschreibung") {
    3. document.eingabe['kon'+i].style.color = "#999";
    4. } else if (document.eingabe['kon'+i].value == "") {
    5. document.eingabe['kon'+i].value = "Beschreibung";
    6. document.eingabe['kon'+i].style.color = "#999";
    7. }
    8. }



    Oder wahlweise auch folgendes, was ich persönlich übersichtlicher und besser lesbarer finde:

    Quellcode

    1. for (var i=1; i<50; i++) {
    2. var elem = document.eingabe['kon'+i];
    3. if (elem.value == "Beschreibung") {
    4. elem.style.color = "#999";
    5. } else if (elem.value == "") {
    6. elem.value = "Beschreibung";
    7. elem.style.color = "#999";
    8. }
    9. }


    Schaue dir zu dem Thema am besten auch folgendes an, hier sind die Zugriffsmöglichkeiten sehr schön aufgeschlüsselt: de.selfhtml.org/javascript/objekte/elements.htm

    Viel Erfolg und happy coding!
    Bodo06