Variable im Funktionsnamen aufrufen

  • Hey,

    ich bin neu hier im Forum, deswegen Entschuldigung, wenn ich irgendetwas falsch gemacht haben sollte.

    Jetzt aber zu meinem Problem:

    Code
    for (var i = 0; i < 999; i++) {
        function showPopup+i() {
            i.classList.remove('hidden');
        }
    }

    Ich möchte in einer for-Schleife Funktionen definieren. Mein Problem ist, dass die Funktionen ja nicht doppeldeutig sein dürfen und ich diesen somit immer einen anderen Namen geben muss. (Dazu die for-Schleife) Jetzt weiß ich aber nicht, wie ich den Wert i aus der for-Schleife in meinen Funktionsnamen bekommen soll. So wie ich es oben mache, klappt es bei mir nicht.

    Dann kriege ich es auch nicht hin, in Zeile 3, den Wert i so zu übergeben, dass es funktioniert.


    Vielen Dank im Vorraus für eure Hilfe!

    - Simon

  • du vertauscht da was glaube ich

    eine id darf nur einmal vorkommen.


    Was hast du den genau vor ?

    Ohne das zu wissen mache ich mal nur den Fehler weg

    Code
    for (var i = 0; i < 999; i++) {
    showPopup(i);
    }
        function showPopup(i) {
            i.classList.remove('hidden');
        }

    Das würde dann so aussehen und auch laufen.

    Wenn wir jetzt genau wüßten was du vor hast und du mal den ganzen Code zeigen tust dann können wir dir notfalls genauer helfen

  • Ich möchte eine große Anzahl an JavaScript-Funktionen erstellen (999 Stück). Diese Funktionen sollen jeweils den Namen showPopup und dann angefügt den Wert i besitzen. (z.B.: showPopup1(), showPopup2(), ..., showPopup999()). Innerhalb dieser Funktionen sollen dann alle HTML-Elemente mit der CSS-Klasse mit dem aktuellen i-Wert (zB.: 1, 2, ..., 999) die Klasse "hidden" entfernt bekommen.

    Diese Funktionen werden dann über einen Button-Klick im HTML-Code ausgeführt.

    Dafür hatte ich gedacht, könnte man eine for-Schleife verwenden.

    999 einzelne Funktionen zu erstellen, möchte ich lieber vermeiden.


    Interessant finde ich auch deine Methode, also showPopup(i), jedoch weiß ich da nicht, ob bei der

    Code
    i.classList.remove('hidden');

    das i ersetzt wird. Und: Wie kann ich dann dem i noch mehr anfügen, also sowas wie i_blabla.classList.add('hidden');


    Hoffe, das war verständlich und vielen Dank bis hier her.

    Freue mich auf eure Antworten!

  • Du brauchst dafür nicht jedes Mal nee andere Funktion.


    Guck mal hier. Erst erstelle 300 divs mit einer Funktion,

    Jeden Container kannst du anklicken der nee rote Farbe bekommt.

    Dann gibt es einen Button der alle Container nee andere Farbe gibt.

    * Link entfernt , weil existiert nicht mehr *

    Das geht natürlich auch mit deinen remove class und so weiter.

    Wie du siehst, ist es recht wenig Code. Wenn du 1000-mal machen müsstest, für jeden Container wäre ja mega.

    Wichtig ist es eigentlich nur, dass man keine doppelte Id's hat . Jetzt gerade hier in den Code nicht, weil wir da keine Id ansprechen. Wollen wir aber mal später im Code auf die Container zugreifen würde das mit gleichen ID's nicht mehr so klappen wie man es will.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!