Entfernen Sie das Array aus dem JavaScript-Objekt

8

Kontext

Ich versuche, ein Feature so zu implementieren, dass, wenn der Benutzer auf ein Kontrollkästchen in einer Tabelle klickt, das Attribut value und data-title des Kontrollkästchens in einem JS-Objektliteral namens selected als a gespeichert werden soll neues Schlüssel-Wert-Paar-Array-Element.

Falls der Benutzer ein zweites Mal auf dasselbe Kontrollkästchen klickt, sollte das entsprechende Array-Element entfernt werden.

Problem

Beim ersten Klicken auf ein Kontrollkästchen wird ein Array im Objekt selected wie vorgesehen erstellt.

Wenn das gleiche Kontrollkästchen jedoch ein zweites Mal angeklickt wird, wird ein neues (wiederholtes) hinzugefügt, anstatt das entsprechende Array zu entfernen .

Code

%Vor%     
Sam32 09.02.2016, 15:38
quelle

3 Antworten

6

Sie haben den falschen Kontext von this in each . Es ist nicht mehr das Element im Click-Handler

Versuchen Sie

%Vor%     
charlietfl 09.02.2016, 15:47
quelle
3

Zuerst würde ich empfehlen, ein Schlüssel-Wert-Paar-Objekt zu verwenden, da es für Nachschlagevorgänge viel einfacher ist.

%Vor%

Auf diese Weise können Sie mit

auf die ausgewählten Objekte zugreifen %Vor%

vielleicht etwas wie das ...

%Vor%     
Luke 09.02.2016 15:48
quelle
0

Wie wäre es mit diesem:

%Vor%     
Thomas 09.02.2016 16:16
quelle

Tags und Links