【问题标题】:jQuery How to filter an object array based on the value of a data-attribute?jQuery 如何根据数据属性的值过滤对象数组?
【发布时间】:2018-10-03 19:35:07
【问题描述】:

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

例如...

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

现在每个示例图像都会返回类似

的内容

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

我怎样才能只过滤掉那些包含data-targetattribute="12345" 的图像?

我认为以下方法会起作用,但它没有......

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

有什么想法吗?过滤方法或对象集合是否有一些我无法正确理解的内容?

我也没有与 jQuery 结婚,所以如果这更适合原始 Javascript 方法,我会全力以赴!

谢谢!

【问题讨论】:

    标签: jquery methods jquery-selectors


    【解决方案1】:

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

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

    var divs = $('div');
    
    divs = divs.filter('[data-targetattribute="12345"]')
    
    divs.css('background-color', 'red');
    

    JSFiddle

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

    【讨论】:

      猜你喜欢
      • 2021-04-15
      • 2017-03-19
      • 2018-07-06
      • 2018-12-25
      • 2020-07-11
      相关资源
      最近更新 更多