58 votes

Comment ajouter des éléments à un tableau dans JQuery

 var list = [];
$.getJSON("json.js", function(data) {
    $.each(data, function(i, item) {
        console.log(item.text);
        list.push(item.text);
    });
});
console.log(list.length);
 

list.length renvoie toujours 0. J'ai parcouru le JSON dans Firebug et tout s'est bien passé; tout va bien. Je n'arrive pas à ajouter un élément au tableau. Qu'est-ce que je rate?

Merci, Nathan

118voto

Derek Swingley Points 3851

Puisque $ .getJSON est async, je pense à votre console.log (list.length); le code se déclenche avant que votre tableau ne soit rempli. Placez votre instruction console.log dans votre rappel:

 var list = new Array();
$.getJSON("json.js", function(data) {
    $.each(data, function(i, item) {
        console.log(item.text);
        list.push(item.text);
    });
    console.log(list.length);
});
 

3voto

redsquare Points 47518

Vous faites une demande ajax qui est asynchrone. Par conséquent, votre journal de console de la longueur de la liste est généré avant la fin de la demande ajax.

Le seul moyen d'obtenir ce que vous voulez est de changer l'appel ajax pour qu'il soit synchrone. Vous pouvez le faire en utilisant .ajax et en passant asynch: false, mais cela n’est pas recommandé, car elle verrouille l’interface utilisateur jusqu’à ce que l’appel soit renvoyé. Si le retour échoue, l’utilisateur doit se bloquer en dehors du navigateur.

3voto

aji Points 11

J'espère que ceci vous aidera..

 var list = [];
    $(document).ready(function () {
        $('#test').click(function () {
            var oRows = $('#MainContent_Table1 tr').length;
            $('#MainContent_Table1 tr').each(function (index) {
                list.push(this.cells[0].innerHTML);
            });
        });
    });
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X