如果我知道属性名称,是否有更好的方法,更少的密集(我可以有100的os Swatches)方式来写这个? 类似于:$(“[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>
感谢。
答案 0 :(得分:1)
您可以使用属性选择器执行此操作。
$(xmlDoc).find('[name=Clear-Matt]').attr('cost'); // or use 'Swatch[name=Clear-Matt]'
<强> Fiddle 强>
一旦你得到你需要的东西,对于你现有的for-each循环的问题,你可以做一个等同于return false;
陈述的break;
。
if (name=="Clear-Matt") {
swatchCost=$(this).attr('cost');
return false; //break the iteration now.
}