J'essaie de faire une boucle sur des objets enfants dans un objet en utilisant $ (parent) .each () mais cela ne retournera que le parent. Dans le code ci-dessous, console.log () imprime tous les deux exactement la même chose. Ce que je veux, c'est parcourir les objets enfants "Rectangle", "PointEnd" et "PointStart" puis leurs enfants.

moveItemsObjArray = [];
moveItemsObj = {};
mobeItemsObj.pointer = guidVarible;
moveItemsObj.nodes =  {"Rectangle":{
                          "RECT_X": lineRect_X,
                          "RECT_Y": lineRect_Y,
                          "RECT_W": lineRect_W,
                          "RECT_H": lineRect_H
                        },
                        "PointStart":{
                          "POINT_X": newPointStart_X,
                          "POINT_Y": newPointStart_Y
                        },
                        "PointEnd": {
                          "POINT_X": newPointEnd_X,
                          "POINT_Y": newPointEnd_Y
                        }
                      };
                      moveItemsObjArray.push(moveItemsObj);
});


$(moveItemsObjArray).each(function(){
  var nodes = this.nodes;
    console.log(nodes);
  $(nodes).each(function(){
    console.log(this);
  });
});
0
Skej 22 juil. 2015 à 16:04

3 réponses

Meilleure réponse

Et ça?

$.each(nodes, function(i, node) {
    $.each(node, function(i, child) {
        console.log(child); // normal value
        console.log($(child)); // make jquery object
    });
});

Dans vanilla js, vous pouvez utiliser for(var node in nodeObjects), il retournera l'index. jQuery a les deux i, valeur dans la fonction .each.

Les deux exemples sont ici.

1
daremachine 22 juil. 2015 à 14:26
$(moveItemsObjArray).each(function(){
  var nodes = this.nodes;
  for(var k in nodes)
  {
      var xxx = nodes[k]
      for(var x in xxx)
      {
          alert(xxx[x])
      }
  }
});

JSFiddle

Les boucles peuvent continuer comme vous le souhaitez.

1
user3235186user3235186 22 juil. 2015 à 13:34

Au lieu de

moveItemsObj.pointer = guidVarible;

Vous avez utilisé

mobeItemsObj.pointer = guidVarible;
1
jrath 22 juil. 2015 à 13:11