2016-12-27 5 views
0

Dies ist, was ich bisher versucht habe. Nicht immer, wie nur einen variablen Wert in Array aktualisierenWie wird der spezifische Wert einer Variablen in Array aktualisiert?

allVals = []; 
var qty; 
jQuery(".big:checked").each(function() { 
    qty = parseInt(jQuery(this).parents().nextAll().children().find('input[name="quantity"]').val()); 
    if (jQuery.inArray(jQuery(this).val(), allVals) == -1) { 
     allVals.push(jQuery(this).val() + ',' + qty + ',' + 'custcol_name_of_attendees|' + nameatt + '||custcol_email_of_attendees|' + emattendee + '||custcol_event_name|' + eventname + '| |custcol_event_location|' + eventlocation); //not present in array 
    } else { 
     qty = parseInt(jQuery(this).parents().nextAll().children().find('input[name="quantity"]').val()) + 1; 
     // update only qty value in allVals array 
    } 
}); 

I Menge Variablenwert um 1 jedes Mal, es findet doppeltes Element in Array

+0

Was ist der Wert in '('Eingang ist [name =" Menge "] '). val()'? –

+0

Es gibt mir ausgewählte Kontrollkästchen Menge Feld Wert .... es wird ganzzahlig wie 1,2,3 usw. – Uidev123

Antwort

0

EDIT erhöhen möge:

Okay, Jetzt glaube ich zu verstehen, was du willst. Menge ist nicht der beste Name für eine ID. Versuchen Sie folgendes:

allVals = []; 
jQuery(".big:checked").each(function() { 
    var elements = jQuery(this).parents().nextAll().children().find('input[name="quantity"]'); 

    jQuery(elements).each(function() { 
     var qty = parseInt(this.val()); 
     var id = this.attr('id'); 

     if (qty in allVals) { 
      allVals[qty] += 1; 
     } else { 
      allVals[qty] = 1; 
     } 
    }); 

}); 

===

Ihr Code wird nie etwas in der Gruppe finden. Was Ihr in Ihrem Array schieben ist

jQuery(this).val() + ',' + qty + ',' + 'custcol_name_of_attendees|' + nameatt + '||custcol_email_of_attendees|' + emattendee + '||custcol_event_name|' + eventname + '| |custcol_event_location|' + eventlocation 

aber Sie suchen nur für diesen

jQuery(this).val() 

Ich denke, eine bessere Lösung, um Ihre Eingaben, um eine eindeutige ID zu geben und dafür zu prüfen, mit id in allVals

Auch Array-Werte werden nie aktualisiert. Nur qty wird durch den Wert Ihres Eingabefeldes aktualisiert.

+0

Danke, aber ich suche nach Menge – Uidev123

+0

@ Uidev123 Überprüfen Sie die aktualisierte Antwort. – pixelarbeit

0

Zuerst finden Sie Index Wert von indexOf:

var index = allVals.indexOf(jQuery(this).val()); 

Dann Sie nur Wert von = Operator aktualisiert:

allVals[index] = qty // "qty" after update value 
Verwandte Themen