bloated jquery xml requests

52 Views Asked by At

I was wondering if anyone had an alternative to this.

          $(xml).find("a").each(function(){
           $(this).find('b').each(function(){
               $(this).find('c').each(function(){
                   $(this).find('d1').each(function(){
                        sectionValidation.RegisterTerms.setRegisterTermsArray(this);
                   });
                    $(this).find('d2').each(function(){
                        sectionValidation.RegisterTerms.checkValidVariations(this, val);
                    });
               });
           });
       });

It seems really bloated and there has to be a more elegant approach to getting nested xml data. Thank you

1

There are 1 best solutions below

1
On BEST ANSWER

You can at least combine your a through c selector with a decendant selector (space in-between), like this:

$(xml).find("a b c").each(function(){
  $(this).find('d1').each(function(){
      sectionValidation.RegisterTerms.setRegisterTermsArray(this);
  });
  $(this).find('d2').each(function(){
      sectionValidation.RegisterTerms.checkValidVariations(this, val);
  });
});

For the other, it depends on the size of the document as to if this would be faster:

var $xml = $(xml);
xml.find("a b c d1").each(function(){
  sectionValidation.RegisterTerms.setRegisterTermsArray(this);
});
xml.find("a b c d2").each(function(){
  sectionValidation.RegisterTerms.checkValidVariations(this, val);
});