0

我想知道是否有人可以替代它。

          $(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);
                    });
               });
           });
       });

它看起来真的很臃肿,必须有一种更优雅的方法来获取嵌套的 xml 数据。谢谢

4

1 回答 1

1

您至少可以将您的a直通c选择器与后代选择器(中间的空格)结合起来,如下所示:

$(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);
  });
});

另一方面,这取决于文档的大小,这是否会更快:

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);
});
于 2010-12-21T15:20:54.300 回答