JavaScript
Article

jQuery Filter Objects by Data Attribute Value

By Sam Deering

How you might use jQuery to filter elements by their data Attribute values. This code snippet grabs all divs that have an id beginning with “proto_” and have a data attribute of “state” with value “open”.

var $el = $('div[id^=proto_]').filter(function()
{
     return ($(this).data("state") == "open")
});
console.log($el);

I’ve done a quick demo in jsfiddle to demonstrate. https://jsfiddle.net/qgwnY/

Optimised Version

Thanks Vlad.

var $el = $('div[id^=proto_]').filter('div[data-state=open]').css('color','red');​

Check this out on jsfiddle.

Free Guide:

7 Habits of Successful CTOs

"What makes a great CTO?" Engineering skills? Business savvy? An innate tendency to channel a mythical creature (ahem, unicorn)? All of the above? Discover the top traits of the most successful CTOs in this free guide.

  • http://www.facebook.com/vladimir.kharlampidi Vladimir Kharlampidi

    Don’ forget that you can get the same result by using just:
    var $el = $(‘div[data-state=open]’) ;)

Recommended
Sponsors
Because We Like You
Free Ebooks!

Grab SitePoint's top 10 web dev and design ebooks, completely free!

Get the latest in JavaScript, once a week, for free.