2016-06-10 92 views

回答

3

可以使用each()使用return false;

$('.item-wrap').each(function() { 
    if (+$(this).data('amount') > 0) { 
     // Do "Hello World" here 
     $(this).trigger('click'); 

     // Breakout 
     return false; 
    } 
}); 
4

使用filter功能遍历从环的元素和出口,我们可以限制我们的搜索。要通过它的数据属性选择一个元素,jQuery有一个方便的data()函数。

这可能会显示多个结果,如我的示例中所示。要获得第一个,您可以使用first方法。

$("div").filter(function() { 
 
    return $(this).data("amount") > 0; 
 
}).first().css({"color": "green"});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div data-amount="-7">On Tuesday I lost 7 dollars gambling</div> 
 
<div data-amount="-3">On Wednesday, I lost 3 dollars gambling</div> 
 
<div data-amount="37">On Thursday, I actually won 37 dollars</div> 
 
<div data-amount="16">I'm on a roll. Won 16 more dollars today</div>

一些注意

  • 如果您的数据属性不完全的数字组成,该代码将无法正常工作。假定您所有的data-amounts都具有与正则表达式匹配的值:\A\d*\z

  • 如果字符串与特定模式匹配,则可以将字符串与数字进行比较。这是因为JavaScript执行自动类型转换。在这个例子中,这是相当平凡的,因为我们没有很多数据。但是,如果你有更多的div,你可能想要做类似+$(this).data("amount") > 0

相关问题