javascript - 查找数据属性大于零的第一个元素 JQuery

标签 javascript jquery html

我有一个类为 .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/

相关文章:

html - 防止全宽布局在大屏幕上拉伸(stretch)

javascript - 为什么我不能使用 JavaScript 和 <div> 创建表格行?

javascript - 在对象数组中插入新元素并对数组进行排序

javascript - jQuery UI slider : access options from function associated with the slide event

javascript - ajax读取/获取变量有时无法使用codeigniter获取确切的变量

javascript - 如何在 jQuery 中重新加载 div

html - ie中没有设置背景大小

javascript - 如何在没有 Ext.Loader 的情况下在生产中运行 EXTjs

javascript - 在 Photoshop cc 20.0.0 中通过批量智能对象中的脚本替换内容(替换图层)

javascript - 我如何使用 js 或 jquery 序列化具有多个 ID 的多个表单