Comment ajouter un objet dans la matrice de jQuery
Je vais essayer d'ajouter mes objets à la matrice, mais sur terminer j'ai tous les objets identiques
$('#Create').click(function(event) {
event.preventDefault();
var categoryId = $('#CatId').val();
var enteredDate = $('#datepicker').val();
var empId = $('#employeeID').text();
var systemDate = $.datepicker.formatDate('dd.mm.yy', new Date());
var obj = {
CategoryId: categoryId,
EnteredDate: enteredDate,
SystemDate: systemDate,
EmpId: empId
};
var arrToServer = [];
var list = new Array();
$("input[type=checkbox]:checked").each(function() {
var productId = $(this).attr('id');
obj.ProductId = productId;
arrToServer.push(obj);
});
arrToServer = JSON.stringify(arrToServer);
}
Mon arrToServer avoir 2 objets identiques, pourquoi?
- Ici, un violon qui peut rendre le comportement plus clair: jsfiddle.net/FcHpK
Vous devez vous connecter pour publier un commentaire.
créer une copie de l'objet puis définissez l'id de projet.
Parce que vous êtes seulement à la création d' un objet, en dehors de la boucle, et de pousser l'objet même de la matrice à plusieurs reprises. Passage d'un objet à une fonction ou de l'affecter à une variable différente ne pas créer une copie de l'objet.
Créer l'objet à l'intérieur de la boucle (et avec boucle je veux dire la
.each
de rappel).Voici un exemple d'utilisation de
.map
, ce qui est beaucoup plus propre de l'OMI:.get
retourne un tableau. Sans elle, vous seriez de travail avec un objet jQuery.