0

如果我知道属性名称,有没有更好的方法,不那么密集(我可以有 100 个操作系统样本)来写这个?类似于: $("[attribute.name=='Clear-Matt']").$(this).attr('cost');

如果没有,每个函数在 (name=="Clear-Matt") 时会停止还是会继续到样本的末尾?如果是这样,有没有办法阻止它?

 var swatchCost='';
 $(xmldoc).find('Swatch').each(function() {
      var name = $(this).attr('name');
      if (name=="Clear-Matt") {
           swatchCost=$(this).attr('cost');
      }   
 });

XML:

 <Swatch name="Clear" title="Clear" alt="Frame" cost="100" match=""></Swatch>
 <Swatch name="Clear-Matt" title="Clear-Matt" alt="Frame" cost="11" match=""></Swatch>
 <Swatch name="Blue-Orange" title="Blue-Orange" alt="Frame" cost="200" match=""></Swatch>
 <Swatch name="Pink-Blue-Clear" title="Pink-Blue-Clear" alt="Frame" cost="300" match="">   </Swatch>
 <Swatch name="Blue" title="Blue" alt="Frame" cost="11" match=""></Swatch>

谢谢。

4

1 回答 1

1

您可以使用属性选择器执行此操作。

$(xmlDoc).find('[name=Clear-Matt]').attr('cost'); // or use 'Swatch[name=Clear-Matt]'

小提琴

对于存在 for-each 循环的问题,一旦你得到了你需要的东西,你就可以做一个return false;相当于break;语句的事情。

  if (name=="Clear-Matt") {
       swatchCost=$(this).attr('cost');
      return false;  //break the iteration now.
  } 
于 2013-09-10T22:37:27.723 回答