jQuery如何根据数据属性的值过滤对象数组?

时间:2018-10-03 19:35:08

标签: jquery methods jquery-selectors

如果要处理返回的图像数组,如何仅过滤出包含特定数据属性值的那些图像?

例如...

let $exampleImages = $("#example img");

现在每个示例图像都返回

$exampleImages[5] => <img ... data-targetattribute="12345" ... >

我如何只过滤出包含data-targetattribute="12345"的那些图像?

我本以为以下方法会起作用,但不会...

$exampleImages.filter('[data-targetattribute="12345"]');

有什么想法吗?过滤器方法或关于对象集合是否有我不了解的东西?

我也没有嫁给jQuery,因此,如果这比原始Javascript方法更适合,那我就耳熟能详!

谢谢!

1 个答案:

答案 0 :(得分:1)

要从jQuery对象中过滤具有给定数据属性值的项目,.filter([selector])方法将实现您想要的。

这里有一些示例代码演示了这一点:

var divs = $('div');

divs = divs.filter('[data-targetattribute="12345"]')

divs.css('background-color', 'red');

JSFiddle

请注意.filter返回一个新对象。您的代码遇到的问题可能是您正在尝试引用未更改的初始变量。