0

属性名がわかっている場合、これを書くためのより良い方法はありますか? 次のようなもの: $("[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 に答える