我有一个类为 .item-wrap
的 div 列表
目前,我使用以下代码选择第一个 div
$(".item-wrap:first").trigger( "click" );
每个 .item-wrap
都有一个 data-amount
属性。
如何修改当前代码以选择第一个 data-amount
大于 0 的 .item-wrap
?
最佳答案
使用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
的操作
关于javascript - 查找数据属性大于零的第一个元素 JQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37752319/