Je parcours des éléments DOM lorsque je clique sur un bouton donné. J'ai joint la classe finish-proc
au bouton, donc lorsque vous cliquez dessus activer cette fonction:jQuery: Ajouter des objets à des tableaux dans chaque boucle ne fonctionne pas
<script>
$(document).on('click', '.finish-proc', function() {
var communities = [];
var $this, $thisDay, input, inputDay, text, textDay, obj, objDay;
$('.panel-default').each(function (i) {
var maxPeople = '.' + $(this).attr('data-community') + '-max-people';
var dayInfoRow = '.' + $(this).attr('data-community') + '-day-info';
obj = {};
obj["maxPeople"] = $(maxPeople).val();
var daysArrayInLoop = [];
$(dayInfoRow).each(function (j) {
var objDay = {};
var dayString = '.' + $(this).attr('data-community') + '-day-' + (j + 1);
var dayStringStart = '.' + $(this).attr('data-community') + '-day-' + (j + 1) + '-start';
var dayStringEnd = '.' + $(this).attr('data-community') + '-day-' + (j + 1) + '-end';
objDay["dayString"] = $(dayString).val();
objDay["dayStringStart"] = $(dayStringStart).val();
objDay["dayStringEnd"] = $(dayStringEnd).val();
daysArrayInLoop.push(objDay);
}
obj["dayArray"] = daysArrayInLoop;
communities.push(obj);
}
}
</script>
Ce code se brise sur la ligne:
daysArrayInLoop.push(objDay);
Avec l'erreur:
daysArrayInLoop.push is not a function
Quelqu'un peut-il me dire pourquoi?
EDIT - J'ai essayé de modifier le var daysArrayInLoop = [];
-var daysArrayInLoop = {};
, obtenant toujours la même erreur
peut vous essayer avec 'daysArrayInLoop. appuyez sur (1); 'et voyez si cela donne la même erreur. Faites aussi 'console.log (daysArrayInLoop)' avant de pousser et de vérifier si la console montre qu'il s'agit d'un tableau. Le code que vous avez écrit est correct; cela devrait fonctionner –
Avez-vous défini 'dayInfoRow' n'importe où? – cars10m
Fondamentalement, le tableau 'daysArrayInLoop' est défini correctement et est dans la portée au moment où vous utilisez sa méthode' .push() '. Donc, il doit y avoir quelque chose d'autre .. – cars10m