views:

315

answers:

2

Hello,

The xml response from the ajax request looks like this:

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

I want to insert dom elements based on the xml, but I want them to be ordered as: first all the elements of type1, then all the elements of type2.

It made sense for me (and I also read some discussions on the web) that a compound selector would do it:$(xml).find('element[type=type1], element[type=type2]').each(). Unfortunately this still gets the element in the xml order.

Any ideas?

A: 

What about just selecting the types separately? Instead of pushing them all into one selector, just have two statements and iterate through them separately.

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

Or is that not possible for some other reason?

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

that gives you an array which is ordered how you want. Then I think you can:

$(arr).each();

and do as you please

larson4