Fonction .text()

Qui refuse d'être utilisée pour une variable...

Le problème exposé dans ce sujet a été résolu.

Salut les zesteux,

J'ai un soucis avec JQuery et Ajax. Je lis un fichier xml avec une requête Ajax (grâce à JQuery). Je le parcours, tout fonctionne bien, sauf que j'essaye de récupérer les valeurs de mes balises notes avec la fonction .text(). Dans mes console.log(), ça fonctionne correctement, mais quand je l'utilise pour l'affecter à une variable, rien ne se passe…

Quelqu'un saurait comment régler ce soucis svp ?

Voilà le code :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
// Test de la lecture de fichiers xml

$(function() {
    var xmlurl = "test-musique.xml";
    var notesLeft = new Array();
    var notesRight = new Array();
    var notesUp = new Array();
    var notesDown = new Array();
    $.ajax({
        type : "GET",
        url : xmlurl,
        dataType : "xml",
        success : function(xml)
            {
            //*
                $(xml).find('music').each(function()
                    {
                        var name = $(this).attr('name');
                        var scene = $(this).attr('scene');
                        document.getElementById('num_1').innerHTML = "Nom de la musique : " + name + ". Type de scene : " + scene;
                    });
            //*/
            //* 
                $(xml).find('notes-left').each(function()
                    {
                        var hour;
                        $(this).find('note').each(function()
                            {
                                console.log("Gauche" + $(this).text());
                                hour = $(this).text();
                                notesLeft[1] = hour;
                            });
                    });
            //*/
            //*
                $(xml).find('notes-right').each(function()
                    {
                        $(this).find('note').each(function()
                            {
                                console.log("Droite" + $(this).text());
                                notesRight.push($(this).text());
                            });
                    });
            //*/
            }
        });
    document.getElementById('click').innerHTML = "Gauche : " + notesLeft[1] + "   Droite : " + notesRight[1];
});
+0 -0

Yep, je suis censé avoir la dernière valeur d'accessible (à la base, c'était légèrement différent, j'ai modifié comme ça juste pour tester). Mais il se trouve que je n'ai rien, pas la moindre valeur. Et c'est pareil à la ligne 41, ça ne fonctionne pas. Quand j'affiche les tableaux, j'ai 2 jolis undefined.

Pour ce qui est de JS Vanille et JQuery, j'ai jamais entendu parler de JS Vanille, j'ai juste suivi un tuto pour réussir à lire mon xml, et j'ai pas la moindre idée de si c'est bien fait ou non. Mon niveau en JS est assez limité, j'ai juste suivi mes cours d'ISN, et c'était pas glorieux…

+0 -0

Ah oui mais tu les affiches ligne 47 tes infos, non ?

Sachant que ta requête AJAX est asynchrone c'est pas une bonne idée : la fonction success est appelée au retour de la requête, alors que ta ligne 47 est exécutée de manière synchrone, juste après le début (ouverture) de la requête ;)

Déplace juste ta ligne 47 ligne 44 (à la place des commentaires) et ça ira mieux ;)

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte