2009-05-27 8 views
0

La réponse xml de la demande ajax ressemble à ceci:jquery: obtenir des éléments de xml dans un ordre différent

<element type='type1' /> 
<element type='type2' /> 
... 
<element type='type1' /> 

Je veux insérer des éléments dom basé sur le XML, mais je veux qu'ils soient commandés comme: d'abord tous les éléments de type1, puis tous les éléments de type2.

Il était logique pour moi (et j'ai aussi lu quelques discussions sur le web) qu'un sélecteur composé le ferait: $(xml).find('element[type=type1], element[type=type2]').each(). Malheureusement, cela obtient toujours l'élément dans l'ordre xml.

Des idées?

Répondre

0

Que diriez-vous simplement de sélectionner les types séparément? Au lieu de les pousser tous dans un sélecteur, il suffit d'avoir deux énoncés et de les parcourir séparément.

$(xml).find('element[type=type1]').each(...); 
$(xml).find('element[type=type2]').each(...); 

Ou n'est-ce pas possible pour une autre raison?

1
var arr=$(xml).find('element[type=type1]').get().concat(
      $(xml).find('element[type=type2]').get() 
     ); 

qui vous donne un tableau qui est commandé comme vous le souhaitez. Ensuite, je pense que vous pouvez:

$(arr).each(); 

et comme il vous plaira

Questions connexes